从零开始搭建微服务
文章平均质量分 86
余弦的自留地
万物之中,希望至美
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
从零开始搭建微服务:注解功能整合及密码加密器调整
注解功能整合到目前为止,各微服务模块的入口类上自定义的注解已经有点多了,比如elsa-server-demo模块的入口类:@EnableDiscoveryClient@SpringBootApplication@EnableGlobalMethodSecurity(prePostEnabled = true) //表示开启Spring Cloud Security权限注解@EnableElsaAuthExceptionHandler@EnableFeignClients //开启Feign Cl原创 2021-05-13 10:24:06 · 225 阅读 · 0 评论 -
从零开始搭建微服务:微服务防护
目前我们所有客户端请求都是通过微服务网关转发完成的,但是还是可以直接访问微服务地址的方式来获取服务,我们使用PostMan分别向localhost:8301/system/hello(网关)localhost:8202/hello(非网关)发送GET请求,都能得到响应结果。localhost:8301/system/hello(网关)localhost:8202/hello(非网关)为了避免客户端请求绕过网关,直接调用微服务,我们可以在网关转发请求至微服务前和微服务被调用前之间做一些必要原创 2021-05-13 08:50:24 · 523 阅读 · 0 评论 -
从零开始搭建微服务:跨域处理
前后分离架构下肯定会遇到跨域的问题,因为我们的请求都是通过微服务网关来转发的,所以我们可以在网关处统一处理跨域。ElsaGateWayCorsConfigure在elsa-gateway模块下的com.elsa.gateway.configure模块下新建ElsaGateWayCorsConfigure配置类:@Configurationpublic class ElsaGateWayCorsConfigure { @Bean public CorsFilter corsFilter() {原创 2021-05-11 23:32:15 · 228 阅读 · 0 评论 -
从零开始搭建微服务:微服务间调用
微服务之间调用可通过Spring Cloud Feign来完成,Spring Cloud Feign内部整合了Spring Cloud Ribbon和Spring Cloud Hystrix,所以它具有客户端负载均衡和服务容错的功能。Feign微服务间调用以演示elsa-server-demo内部调用elsa-server-system提供的REST服务为例讲解。被调用端测试接口我们在elsa-server-system模块的TestController里新增一个方法,供elsa-server-de原创 2021-05-11 23:01:33 · 512 阅读 · 0 评论 -
从零开始搭建微服务:异常处理
目前系统的异常响应都是以Spring内部构建好的默认的格式返回。这样的格式对于开发的友好度不是很好。{ "error": "invalid_grant", "error_description": "Bad credentials"}下面我们通过自定义各种异常处理器,来将默认的异常响应转换为对我们友好的的格式响应。认证服务器异常处理默认情况下,当我们在获取令牌时输入错误的用户名或密码,系统返回如下格式响应:{ "error": "invalid_grant",原创 2021-05-11 20:59:22 · 2284 阅读 · 0 评论 -
从零开始搭建微服务:参数配置化
在开发过程中,一般都不建议使用硬编码的形式,因为硬编码不利于代码维护和升级,举个简单的例子:以PI圆周率为例,当我们在多处代码中使用时,如果需要修改PI值时,就需要在多处代码处对PI值都进行修改。但是如果将常量参数改造为可配置方式,则可通过修改一处,其他所有地方都改变。在搭建elsa-auth认证服务器时,我们在ElsaAuthorizationServerConfigure配置类里有两处采用了硬编码的形式。client_id,client_secret public void configur原创 2021-05-11 09:01:43 · 510 阅读 · 0 评论 -
从零开始搭建微服务:资源服务器
为了演示认证服务器和资源服务器在分离的模式下,如何进行资源保护和资源获取,我们来搭建两个微服务提供者:elsa-server-system和elsa-server-demo资源服务器。因为存在多个资源服务器,因此,我们为这些微服务提供一个父模块,来统一管理。elsa-server 父模块创建elsa-server 父模块项目File==>新建==>Other==>搜索Maven,选择Maven Module,然后Next填写Module Name:elsa-server,点击N原创 2021-05-10 22:08:35 · 915 阅读 · 1 评论 -
从零开始搭建微服务:网关服务器
在微服务的架构中,服务网关就是一个介于客户端与服务端之间的中间层。在这种情况下,客户端只需要跟服务网关交互,无需调用具体的微服务接口。这样的好处在于,客户端可以降低复杂性,无需关注具体是哪个微服务在提供服务。这一节我们将使用Spring Cloud Zuul搭建微服务网关elsa-gateway。网关服务器搭建创建认证服务器子项目File==>新建==>Other==>搜索Maven,选择Maven Module,然后Next填写Module Name:elsa-gateway,原创 2021-05-10 16:12:57 · 1314 阅读 · 0 评论 -
从零开始搭建微服务:认证服务器
通常的,单体架构,我们会采用Shiro对系统做防护以及权限控制。在搭建微服务系统时,同样也要对资源做保护,只有通过认证的资源才能被访问。下面,我们将借助Spring Cloud OAuth和Spring Cloud Security搭建一个统一给微服务发放访问令牌的认证服务器elsa-auth。Oauth2协议简介在微服务架构下,我们通常根据不同的业务来构建不同的微服务子系统,各个子系统对外提供相应的服务。客户端除了浏览器外,还可能是手机App,小程序等。在微服务架构出现之前,我们的系统一般为单体模式,原创 2021-05-09 23:44:42 · 2746 阅读 · 0 评论 -
从零开始搭建微服务:微服务注册中心
微服务注册中心搭建微服务注册中心的作用就是用于统一管理微服务实例,微服务间的调用只需要知道对方的服务名,而无需关注具体的IP和端口,便于微服务架构的拓展和维护。因为Eureka较为简单,无须启动第三方服务,只需要引入相关依赖即可,所以先使用Eureka构建微服务注册中心(Eureka服务端)。创建微服务注册中心子项目File==>新建==>Other==>搜索Maven,选择Maven Module,然后Next填写Module Name:elsa-register,点击Nex原创 2021-05-06 08:41:46 · 613 阅读 · 1 评论 -
从零开始搭建微服务:通用模块搭建
通用模块主要用于定义一些各个微服务通用的实体类,工具类或者第三方依赖等。新建通用模块新建 Maven ModuleFile==>新建==>Other==>搜索Maven,选择Maven Module,然后Next填写Module Name填写Module Name:elsa-common,点击Next一直Next至FInish为止,创建完成,项目结构如下父级Elsa-Cloud pom.xml因为我们刚刚在创建elsa-common模块的时候选择elsa-cloud作原创 2021-04-29 14:20:33 · 672 阅读 · 1 评论 -
从零开始搭建微服务:父模块搭建
首先我们使用Myeclipse创建一个名称为Elsa-Cloud的 Maven模块,该模块为整个工程的服务模块,用于聚合各个微服务子系统。File==>新建==>Other==>搜索Maven,选择Maven Project点击Next所有都默认,继续点击Next选择quickstart,点击Next如上图所示填写GroupId及ArtifactId,点击Finish,创建完项目如下图因为Elsa-Cloud模块是项目的父模块,仅用于聚合子模块,所以我们可以把上图红色原创 2021-04-29 13:52:12 · 435 阅读 · 0 评论
分享