整体架构

这个图适合中小公司。麻雀虽小 五脏俱全。微服务架构所需要做的事在这个图里基本都有了。

绿色的不讲,主要讲的是这三块(橘黄色的)。后面的和运维相关,会讲,不会讲的太深

订单服务

首先来写一个订单服务

从user的项目 复制依赖到order里面

复制过来了

增加starter-web的依赖

创建包


SpringBoot的启动类也复制过来,改个名字叫做OrderApi

新建order包


创建OrderInfo

新建OrderController

写一个创建订单的方法

创建价格服务

用来查询商品价格

这两个服务可以互相调用

依赖复制一下

创建包

SpringBoot启动类复制过来,改个名字PriceApi

创建price的包

创建priceController

创建要返回的类 PriceInfo


创建返回商品价格的信息的方法


PriceInfo加上属性。

order的服务加上依赖。

price的服务加上依赖。

这样加上@Data注解就不会报错了

这样就有了set方法

创建订单调用价格服务

因为没有搭建注册中心,所以也不把RestTemplate声明成Spring的Bean的形式了。主要讲安全,服务的注册发现和负载均衡就不在这里讲了。直接就去调对面的服务。


商品id通过订单的信息传递过来。订单的实体里面添加一个属性就是为这个商品下一个订单。订单的id

这样就把订单的id传递过来。

服务返回的是PriceInfo

直接把PriceInfo这个类复制一个到了Order的服务下。这里就是重复的代码

微服务架构下最重要的是解耦。解耦的重要性远远大于有些代码重复的重要性的。
如果想PriceInfo不重复。那么一定要提炼出一个公用的jar包来。比如说叫什么common core
这样order和price服务都添加那个公用的jar包引用。表面上看是消除了一些重复的代码。但是增加了耦合性。因为这两个服务都要依赖同一个扎包
那么这一个jar包有变化,实际上影响你两个系统。在微服务的环境下解耦,降低互相依赖的重要性比节省几行代码的重要性要高很多。所以这里面临这种情况就直接复制代码。两边各自改自己的PriceInfo 互不影响。


以上就写了一个价格服务一个订单的服务,然后在订单服务里面去查了一下传进来的商品id的价格。

在PriceController里面

服务修改端口

因为要同时启动两个应用,所以要指定不同的端口

创建pplication.yml配置文件。

server.port


从order服务复制一个到price的服务

启动服务测试

启动orderApi

启动PriceApi

这里端口改成9060


说明我调用价格服务调用成功了。

就做这么个简单场景,下单然后价格服务 查一下价格

结束

Spring cloud微服务安全实战-4-3常见的微服务安全整体架构的更多相关文章

  1. spring cloud: zuul(二): zuul的serviceId/service-id配置(微网关)

    spring cloud: zuul(二): zuul的serviceId/service-id配置(微网关) zuul: routes: #路由配置表示 myroute1: #路由名一 path: ...

  2. 新书上线:《Spring Boot+Spring Cloud+Vue+Element项目实战:手把手教你开发权限管理系统》,欢迎大家买回去垫椅子垫桌脚

    新书上线 大家好,笔者的新书<Spring Boot+Spring Cloud+Vue+Element项目实战:手把手教你开发权限管理系统>已上线,此书内容充实.材质优良,乃家中必备垫桌脚 ...

  3. Spring Cloud Gateway限流实战

    欢迎访问我的GitHub https://github.com/zq2599/blog_demos 内容:所有原创文章分类汇总及配套源码,涉及Java.Docker.Kubernetes.DevOPS ...

  4. Spring Cloud Sleuth超详细实战

    为什么需要Spring Cloud Sleuth 微服务架构是一个分布式架构,它按业务划分服务单元,一个分布式系统往往有很多个服务单元.由于服务单元数量众多,业务的复杂性,如果出现了错误和异常,很难去 ...

  5. spring cloud 入门系列四:使用Hystrix 实现断路器进行服务容错保护

    在微服务中,我们将系统拆分为很多个服务单元,各单元之间通过服务注册和订阅消费的方式进行相互依赖.但是如果有一些服务出现问题了会怎么样? 比如说有三个服务(ABC),A调用B,B调用C.由于网络延迟或C ...

  6. spring cloud 入门系列五:使用Feign 实现声明式服务调用

    一.Spring Cloud Feign概念引入通过前面的随笔,我们了解如何通过Spring Cloud ribbon进行负责均衡,如何通过Spring Cloud Hystrix进行服务断路保护,两 ...

  7. spring cloud 入门系列六:使用Zuul 实现API网关服务

    通过前面几次的分享,我们了解了微服务架构的几个核心设施,通过这些组件我们可以搭建简单的微服务架构系统.比如通过Spring Cloud Eureka搭建高可用的服务注册中心并实现服务的注册和发现: 通 ...

  8. Spring Cloud Gateway自定义过滤器实战(观测断路器状态变化)

    欢迎访问我的GitHub https://github.com/zq2599/blog_demos 内容:所有原创文章分类汇总及配套源码,涉及Java.Docker.Kubernetes.DevOPS ...

  9. Spring Cloud Eureka 自我保护机制实战分析

    前些天栈长在Java技术栈微信公众号分享过 Spring Cloud Eureka 的系列文章: Spring Cloud Eureka 自我保护机制 Spring Cloud Eureka 常用配置 ...

  10. Spring Cloud Alibaba Nacos Discovery 实战

    Nacos 作为服务注册中心,可以快速简单的将服务自动注册到 Nacos 服务端,并且能够动态无感知的刷新某个服务实例的服务列表,为分布式系统提供服务注册与发现功能 一.创建服务 1.创建项目 pom ...

随机推荐

  1. Laravel下载地址合集

    laravel官网直接下载地址都没了. 都要用composer装? 在此记录一下直接下载地址 master      https://github.com/laravel/laravel/archiv ...

  2. 关于List集合中元素排序问题

    问题描述: 有一个list集合,其中元素是Student对象,根据student的age排序. Student对象 /** * description * * @author 70KG * @date ...

  3. 开启idea自动Build功能

    修改Intellij IDEA的配置两步:1.setting -> Compile -> Build project automatically --> 选中 2.CTRL + SH ...

  4. 开放API接口安全处理

    一.开放API接口定义 顾名思义,开放出来给其他人调用的API接口就是开放API接口.例如,短信接口.邮件接口. 二.开放API的弱点 数据窃取 用户的密码等信息被不轨之人窃取,登录账号发布敏感信息, ...

  5. Centos7 minimal 安装npm

    最小版本缺少很多源,需要手动去添加源 如何去判断yum中 有没有 npm 的源呢 yum list | grep npm 如果是这样的,就代表需要自己去添加 curl -sL -o /etc/yum. ...

  6. 洛谷 P816 忠诚 题解

    每日一题 day28 打卡 Analysis 这道题用线段树维护区间最小值很简单,因为没有修改所以连lazy_tag都不用,但是这道题可以用树状数组维护区间最小值,非常骚气. 线段树代码: #incl ...

  7. Bzoj 2875: [Noi2012]随机数生成器(矩阵乘法)

    2875: [Noi2012]随机数生成器 Time Limit: 10 Sec Memory Limit: 512 MB Submit: 2052 Solved: 1118 Description ...

  8. 【概率论】6-4:分布连续性修正(The Correction for Continuity)

    title: [概率论]6-4:分布连续性修正(The Correction for Continuity) categories: - Mathematic - Probability keywor ...

  9. 29、Java虚拟机垃圾回收调优

    一.背景 如果在持久化RDD的时候,持久化了大量的数据,那么Java虚拟机的垃圾回收就可能成为一个性能瓶颈.因为Java虚拟机会定期进行垃圾回收,此时就会追踪所有的java对象, 并且在垃圾回收时,找 ...

  10. [php]Windows环境下Composer的安装教程

    方法一: 下载Composer-Setup.exe后安装,它会自动搜索 php.exe 路径, 如果找不到,则手动添加路径.   Windows安装Composer 方法二: 如果出现如下错误,说明伟 ...