Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >最简单的微服务部署测试实践

最简单的微服务部署测试实践

作者头像
震八方紫面昆仑侠
发布于 2020-10-26 08:00:40
发布于 2020-10-26 08:00:40
6350
举报

微服务特别适合业务复杂,开发队伍庞大的项目。微服务可以到达化整为零,简化单个服务,降低沟通成本的效果。但微服务在性能上比单体服务低,也会有数据冗余的问题,要结合自身情况,不要盲目崇拜。 本文介绍一种简单的微服务技术架构。帮助大家对微服务如何部署,如何开发有个初步的认识。

一个简单的微服务架构

部署图如下

nginx:

对外统一入口,根据url将请求分发到不同微服务,用ip:port区分不同的微服务。也会直接处理一些静态资源的访问,本身就是web服务器。

springboot+dubbo:

spring boot是目前最流行的开发web服务的框架(jsp,ejb,ssh这些框架过于老旧),它和微服务没有必然联系,但它结合dubbo可以开发微服务,要求就是spring boot工程要import dubbo.jar或者使用maven引入dubbo。配置dubbo-application.xml,里面写好zookeeper服务地址端口以及提供者和消费者要注册的接口方法。 一个微服务要调用另一个微服务的方法,只需要@Autowired注册接口类的对象,用对象调用方法即可。麻烦点的是各个微服务对同一个接口方法要有一致的接口描述java文件,使用maven管理描述接口的jar包可以有效解决接口一致的问题。 最后打jar包,java -jar ***.jar一个微服务就启动了。

zookeeper:

springboot需要dubbo,而dubbo最推荐的服务注册中心是zookeeper,相当于一个公告板,各个微服务都可以看到上面注册的提供者和消费者的接口方法

DB:

MySQL Oracle等

redis:

缓存session数据,和其它有必要缓存的业务数据

tomcat+dubbo-admin:

dubbo管理系统,用于监控和排查故障,部署在tomcat下,可以在浏览器上查看各个微服务的运行情况,查看某个方法是否可以被正常调用。

积分查询业务场景,帮助理解微服务。

B服务提供检查登陆状态功能。A服务提供查询账号积分功能。 当用户在app点击查询积分时,nginx看见url里有查询积分关键字,会根据nginx.conf的配置将请求发送到A服务,app会有个sessionid发送给A服务,A服务远程调用B服务的检查登陆状态的接口,将sessionid传给接口,B服务接口被调用,使用sessionid到redis查用户信息,如果查询到redis有对应的用户信息,将用户信息返回,A服务接收到远程调用接口返回的用户信息userid,接下来根据用户信息到数据库DB查询积分情况。 这就是两个微服务配合实现一个业务的例子,用到了架构图中的全部单元。查询登陆状态的要求在各个业务都存在,所以会有很多微服务需要远程调用B服务的接口。同时每个微服务可以即是提供者,又是消费者。

在windows下配置一套完整的微服务开发环境。

nginx

D:\Program Files\nginx-1.8.1>start nginx.exe

成功后浏览器如下

MySQL

D:\Program Files\mysql-8.0.12-winx64\bin>mysqld --console

redis

D:\Program Files\Redis-x64-3.0.504>redis-server.exe redis.windows.conf 图我忘截了

zookeeper

双击zkServer.cmd

tomcat和dubbo-admindubbo-admin

需要github上下载,然后单独对dubbo-admin进行编译打war包,war包放到tomcat的webapps目录下,tomcat启动时会自动解压出文件夹,如下图

tomcat/bin目录执行startup.bat 成功后浏览器如下

打开 http://127.0.0.1:8080/dubbo-admin-2.5.8/ (我最初打开页面卡死,后来删除tomcat/log里的全部日志后正常了) 用户名root 密码root

没有启动任何微服务所以上图各项都是空的。在Intellij IDEA运行两个微服务(cmd里java -jar 启动微服务jar包也可以,但调试修改代码不太方便) 可以看到dubbo管理系统可以看见两个服务,一个是提供者,一个是消费者。里面可以查看名称,状态,日志,对排错挺有帮助的。

测试dubug

浏览器输入登陆的url可以看到打开登录页面。

到此一个微服务系统的开发调试环境就完成了。如果只测试后端服务不关心浏览器和app界面的功能,可以使用postman工具,直接发送url给服务端,查看返回的json数据等是否达到预期要求。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2020-10-14,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 MySQL从删库到跑路 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
白话微服务架构以及开发环境演示
微服务概念越来越火,许多新建系统都尽量按照微服务思想设计架构。本文介绍一种简单,但是经典容易理解的微服务技术架构。可以帮助大家对微服务如何设计,如何部署有个初步的认识。如图
震八方紫面昆仑侠
2020/07/22
7050
SpringBoot+SpringCloud面试题整理
什么是SpringBoot? 1、用来简化spring初始搭建和开发过程使用特定的方式进行配置(properties或者yml文件) 2、创建独立的spring引用程序main方法运行 3、嵌入Tomcat无需部署war包,直接打成jar包nohup java -jar – & 启动就好 4、简化了maven的配置 4、自动配置spring添加对应的starter自动化配置 SpringBoot常用的starter: 1、spring-boot-starter-web(嵌入Tomcat和web开发需要的servlet和jsp支持) 2、spring-boot-starter-data-jpa(数据库支持) 3、spring-boot-starter-data-Redis(Redis支持) 4、spring-boot-starter-data-solr(solr搜索应用框架支持) 5、mybatis-spring-boot-starter(第三方mybatis集成starter) SpringBoot自动配置原理: 1、@EnableAutoConfiguration这个注解会”猜”你将如何配置spring,前提是你已经添加了jar依赖项,如果spring-boot-starter-web已经添加Tomcat和SpringMVC,这个注释就会自动假设您在开发一个web应用程序并添加相应的spring配置,会自动去maven中读取每个starter中的spring.factories文件,该文件里配置了所有需要被创建spring容器中bean 2、在main方法中加上@SpringBootApplication和@EnableAutoConfiguration SpringBoot starter工作原理: 1、SpringBoot在启动时扫描项目依赖的jar包,寻找包含spring.factories文件的jar 2、根据spring.factories配置加载AutoConfigure 3、根据@Conditional注解的条件,进行自动配置并将bean注入到Spring Context SpringBoot的优点: 1、减少开发、测试时间和努力 2、使用JavaConfig有助于避免使用XML 3、避免大量的maven导入和各种版本冲突 4、提供意见发展方法 5、通过提供默认值快速开始开发 6、没有单独的web服务器需要,这就意味着不再需要启动Tomcat、Glassfish或其他任何东西 7、需要更少的配置,因为没有web.xml文件。只需添加用@Configuration注释的类,然后添加用@Bean注释的方法,Spring将自动加载对象并像以前一样对其进行管理。甚至可以将@Autowired添加到bean方法中,以使用Spring自动装入需要的依赖关系中 Springcloud解决那些问题: 配置管理、(注册中心eureka、zk)、服务发现、服务注册、断路器、路由策略、全局锁、分布式会话、客户端调用、接口网关(zuul)、服务管理系统 SpringBoot与Springcloud: 1>、SpringBoot简化了xml配置,快速整合框架 2>、Springcloud是一套微服务解决方案—RPC远程调用 3>、关系Springcloud依赖与SpringBoot(web组件用的SpringMVC),为什么Springcloud会依赖与SpringBoot?因为Springcloud写接口就是SpringMVC接口 4>、SpringBootproperties和yml中可以使用${random}设置一些随机值 服务的调用: rest、feign(均使用httpclient技术),负载均衡ribbon 服务调用的原理: 服务首先注册到注册中心eureka中(注册一个名字通过名字调用) 负载均衡 ribbon,先去注册中心取到对应的服务,然后交给我ribbon 配置详解: 1>、eureka.client.register-with-eureka:是否向注册中心注册自己,注册为true反之为false 2>、eureka.client.fetch-registry: 是否需要去检索服务,检索为true反之为false 3>、eureka.client.serviceUrl.defaultZone : 指定服务注册中心的地址 Eureka: 1>、eureka可分为三个角色:服务发现者、服务注册者、注册发现中心,但是这三个角色并不和实际部署的模型是一对一的关系 2>、所有的网络通信都是基于http(s)协议的 3>、Eureka和AWS是紧密结合的,无论是配置还是源码,比如Region、zone…,Region可以通过
全栈程序员站长
2022/09/07
2880
Dubbo+zookeeper微服务架构之服务注册与发现的简单使用
下载链接:在3.5.5版本后,官方提供了bin的包,可以不需要配置环境,直接上手查看
冷环渊
2021/10/19
6290
基于dubbo框架,如何进行大型微服务系统架构设计?
一,为什么需要微服务框架 Nginx+tomcat组成的集群,这已经是非常灵活的集群技术,但是当我们的系统遇到更大的瓶颈,全部应用的单点服务器已经不能满足我们的需求,这时,我们要考虑另外一种,我们熟悉的内容,就是分布式,而当下国内流行的Dubbo框架,不容我们忽视(国外springcloud更火)。 以前我们需要远程调用他人的接口或者提供第三方使用接口,我们可能会遇到的问题: 1,当服务越来越多时,服务URL配置管理变得非常困难,F5硬件负载均衡器的单点压力也越来越大。此时需要一个服务注册中心,动态的注册和
架构师小秘圈
2018/04/02
2.1K0
基于dubbo框架,如何进行大型微服务系统架构设计?
搭建基于Zookeeper和Dubbo的微服务系统及其优缺点比较
1. 安装并启动Zookeeper:下载Zookeeper的最新稳定版本,解压并根据官方文档进行配置。启动Zookeeper服务器。
用户7353950
2024/04/15
2800
搭建基于Zookeeper和Dubbo的微服务系统及其优缺点比较
微服务究竟是“灵丹”还是“毒药”?
微服务架构是从单体架构演化而来的。所谓单体架构,指的是整个互联网系统所有代码打包在一个程序中,部署在一个集群上,一个单体应用构成整个系统。
后端码匠
2021/05/10
3880
微服务究竟是“灵丹”还是“毒药”?
Dubbo详细介绍与安装使用过程
随着互联网的发展,网站应用的规模不断扩大,常规的垂直应用架构已无法应对,分布式服务架构以及流动计算架构势在必行,亟需一个治理系统确保架构有条不紊的演进。
MonroeCode
2018/01/10
3.1K0
Dubbo详细介绍与安装使用过程
Dubbo+Zookeeper+SpringMVC整合实现分布式
Dubbo+Zookeeper+SpringMVC整合实现分布式服务治理框架... 1
BUG弄潮儿
2022/06/30
5130
Dubbo+Zookeeper+SpringMVC整合实现分布式
Docker 系列七(Duubo 微服务部署实践).
    之前我们公司部署服务,就是大家都懂的那一套(安装JDK、Tomcat —> 编译好文件或者打war包上传 —> 启动Tomcat),这种部署方式一直持续了很久,带来的问题也很多:
JMCui
2018/09/27
9190
Docker 系列七(Duubo 微服务部署实践).
微服务 | 资深架构师解读如何使用微服务架构
备注:本文7000多字,可先收藏在阅读,精心总结,切勿盗权,认真读后,定会受益匪浅
码神联盟
2018/12/26
1.4K0
Dubbo与Zookeeper,SpringMVC整合和使用
互联网的发展,网站应用的规模不断扩大,常规的垂直应用架构已无法应对,分布式服务架构以及流动计算架构势在必行,Dubbo是一个分布式服务框架,在这种情况下诞生的。将核心业务抽取出来,作为独立的服务,使前端应用能更快速和稳定的响应。
字母哥博客
2020/09/23
4590
Dubbo与Zookeeper,SpringMVC整合和使用
2022Java微服务最全面试题集
分布式架构就是将传统结构按照模块进行拆分,不同的人负责不同的模块,不会产生代码冲突问题,方便开发。
张哥编程
2024/12/13
1100
0基础教你搭建一套可自动化构建的微服务框架(SpringBoot+Dubbo+Docker+Jenkins)
本文你将学到什么? 本文将以原理+实战的方式,首先对“微服务”相关的概念进行知识点扫盲,然后开始手把手教你搭建这一整套的微服务系统。 项目完整源码下载 https://github.com/bz51/SpringBoot-Dubbo-Docker-Jenkins 这套微服务框架能干啥? 这套系统搭建完之后,那可就厉害了: 微服务架构 你的整个应用程序将会被拆分成一个个功能独立的子系统,独立运行,系统与系统之间通过RPC接口通信。这样这些系统之间的耦合度大大降低,你的系统将非常容易扩展,团队协作效率
大闲人柴毛毛
2018/03/09
5.1K2
0基础教你搭建一套可自动化构建的微服务框架(SpringBoot+Dubbo+Docker+Jenkins)
微服务相关原理与治理
微服务架构没有公认的技术标准和规范或者草案,但业界已经有一些很有影响力的开源微服务架构框架提供了微服务的关键思路,例如 Dubbo 和 Spring Cloud。
JQ实验室
2022/02/09
3240
微服务相关原理与治理
微服务之SpringCloud基础
SpringCloud微服务基础 微服务架构--SpringCloud 网站架构模式 单点应用/分布式系统面向于服务架构(SOA) /微服务架构 web项目 三层架构 1.控制层 2.业务逻辑层 3.数据访问层 传统项目:代码全部在一个项目中,使用包名来区分 com.controller--控制 com.service--业务逻辑层 com.dao--数据访问层 面向服务架构 公司 (如果互联网公司,如果使用传统架构技术开发代码冲突,拆分项目) 1.分布式开发:将一个大的公司,拆分成n个子项目。 会员系
用户1112962
2018/07/04
8510
【干货】手动搭建一套可自动化构建的微服务框架
本文将以原理+实战的方式,首先对“微服务”相关的概念进行知识点扫盲,然后开始手把手教你搭建这一整套的微服务系统。
技术zhai
2019/02/15
8820
三万字图文归纳整理分布式系统微服务
点击上方“芋道源码”,选择“设为星标” 管她前浪,还是后浪? 能浪的浪,才是好浪! 每天 10:33 更新文章,每天掉亿点点头发... 源码精品专栏 原创 | Java 2021 超神之路,很肝~ 中文详细注释的开源项目 RPC 框架 Dubbo 源码解析 网络应用框架 Netty 源码解析 消息中间件 RocketMQ 源码解析 数据库中间件 Sharding-JDBC 和 MyCAT 源码解析 作业调度中间件 Elastic-Job 源码解析 分布式事务中间件 TCC-Transaction
芋道源码
2022/08/29
5450
三万字图文归纳整理分布式系统微服务
【愚公系列】2023年04月 Java教学课程 144-Dubbo概述和基本使用
高性能:提供快速的访问体验。 高可用:在多人访问情况下,网页要保证可以正常访问。
愚公搬代码
2023/04/21
2730
【愚公系列】2023年04月 Java教学课程 144-Dubbo概述和基本使用
微服务框架
SpringBoot的自动配置是基于Spring Factories机制实现的。Spring Factories机制是SpringBoot中的一种服务发现机制,SpringBoot会自动扫描所有jar包路径下的META-INF/spring.factories文件,并读取其中的内容进行实例化,这也是SpringBoot Starter的基础
京剧猫
2023/03/04
4870
『互联网架构』软件架构-微服务介绍及Eureka服务注册与发现(91)
因此, Eureka可以很好的应对因网络故障导致部分节点失去联系的情况,而不会像zookeeper那样使整个注册服务瘫痪。
IT架构圈
2019/07/08
5530
『互联网架构』软件架构-微服务介绍及Eureka服务注册与发现(91)
推荐阅读
相关推荐
白话微服务架构以及开发环境演示
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档