当前位置:首页 > 程序设计 >
《微服务分布式构架开发实战》电子书封面

微服务分布式构架开发实战

  • 发布时间:2019年04月12日 20:18:51
  • 作者:杨恩雄
  • 大小:176.9 MB
  • 类别:微服务电子书
  • 格式:PDF
  • 版本:超清版
  • 评分:8.5

    微服务分布式构架开发实战 PDF 超清版

      给大家带来的一篇关于微服务相关的电子书资源,介绍了关于微服务、分布式构架方面的内容,本书是由电子工业出版社出版,格式为PDF,资源大小176.9 MB,杨恩雄编写,目前豆瓣、亚马逊、当当、京东等电子书综合评分为:9.5分

      Tags:微服务 分布式构架 

      内容介绍

      微服务分布式构架开发实战

      微服务分布式构架开发实战 电子书封面

      读者评价

      Spring cloud 和dubbo 工具简单罗列
      太水了,各式跟微服务无关的内容的杂集。网上随便找些文件都讲得更清楚,更详细。不建议购买与阅读,浪费时间浪费钱。

      内容介绍

      随着第三方框架的逐渐完善,实施微服务架构的开发成本越来越低,分布式架构成为主流势不可挡。一个完善的架构或系统中包含了许多的知识点,而每一个知识点则又可以引出非常多的内容,过度地专注于细节反而会拖慢达成目标的步伐。为了更快地实施微服务,《微服务分布式构架开发实战》基于开源且稳定的第三方工具,介绍如何构建一个庞大且复杂的分布式系统,用于满足项目中的实际需求。

      每一个工具库为了适应更丰富的使用场景,通常都会把部分参数以配置文件的方式暴露出来,同时提供用于开发环境的默认配置。本书基于快速使用为主线,尽可能多地讲解配置参数的意义及它们之间的关系,帮助读者在掌握足够多的知识点后,建立起对微服务分布式架构的认知,以便为探求更深层次的知识点做好铺垫。

      本书适合Java工程师、初级架构师、大中专院校相关专业师生、Java培训班学员及独立开发者与自学读者使用。

      每一个工具库为了适应更丰富的使用场景,通常都会把部分参数以配置文件的方式暴露出来,同时提供用于开发环境的默认配置。本书基于快速使用为主线路,尽可能多地讲解配置参数的意义及之间的关系。在掌握足够多的知识点后建立起对微服务分布式架构的认知,以便为探求更深层次的知识点做好铺垫。

      目录

      • 1 微服务介绍 1
      • 2 模块拆分 12
      • 3 Spring Boot 16
      • 4 Dubbo 20
      • 5 Spring Cloud 40
      • 6 数据持久化 70
      • 7 表单验证 110
      • 8 定时任务 113
      • 9 分布式会话 122
      • 10 消息队列 124
      • 11 构建Web应用 130
      • 12 异常处理 133
      • 13 安全认证 139
      • 14 日志管理 161
      • 15 热部署 171
      • 16 接口文档管理 173
      • 17 Nexus私库 184
      • 18 发布系统 191
      • 19 分布式架构总结 201

      读书笔记

      SpringBoot开发案例 分布式集群共享Session详解

      前言

      在分布式系统中,为了提升系统性能,通常会对单体项目进行拆分,分解成多个基于功能的微服务,如果有条件,可能还会对单个微服务进行水平扩展,保证服务高可用。

      那么问题来了,如果使用传统管理 Session 的方式,我们会遇到什么样的问题?

      案例

      这里拿下单举例,用户小明在天猫上相中了一个的娃娃,觉得不错,果断购买,选尺寸,挑身高,然后确认选择,赶紧提交订单,然后就跳转到了登录页面!小明表示很郁闷,大写的问号???

      • 小明进入娃娃页面,此时请求通过代理服务发送到业务系统一。
      • 小明选尺寸,挑身高,此操作并没有对后端服务发送请求。
      • 小明提交订单,此时请求通过代理服务发送到业务系统二,然鹅,二系统此时并没有查询到小明的登录信息,就被无情的跳转到登录页了。

      方案

      SpringBoot开发案例 分布式集群共享Session详解

      HttpSession 默认使用内存来管理 Session,通常服务端把用户信息存储到各自的 Jvm 内存中。所以小明下单的时候找不到登录信息,那么我么何不把用户信息集中存储!?

      为了测试效果,这里我们搭建一个演示案例,项目涉及 SpringBoot、spring-session、redis、nginx 等相关组件。

      pom.xml引入依赖:

      <dependency>
        <groupId>org.springframework.session</groupId>
        <artifactId>spring-session-data-redis</artifactId>
      </dependency>
      <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-data-redis</artifactId>
      </dependency>

      配置 redis 参数,软件自行安装:

      ## redis
      #session存储类型
      spring.session.store-type=redis
      spring.redis.database=0
      spring.redis.host=127.0.0.1
      spring.redis.port=6379
      spring.redis.password=123456
      spring.redis.pool.max-active=8
      spring.redis.pool.max-wait=-1
      spring.redis.pool.max-idle=8
      spring.redis.pool.min-idle=0
      spring.redis.timeout=3000

      简单的用户登录实现,省略部分代码:

      @RequestMapping(value="login",method=RequestMethod.POST)
      public Result login(String username,String password,HttpServletRequest request,HttpServletResponse response) throws Exception {
          SysUser user = userService.getUser(username);
          if(user==null) {
            return Result.error("用户不存在");
          }else {
            if(user.getPassword().equals(password)) {
              request.getSession().setAttribute("user", user);
              return Result.ok();
            }else {
              return Result.error("密码错误");
            }
          }
      }

      配置代理实现,基于 Nginx:

      server {
          listen    80;
          server_name blog.52itstyle.vip;
          location / {
            proxy_pass http://192.168.1.2:8080; 
          }
          location /cart {
             proxy_pass http://192.168.1.3:8080$request_uri;
          }
          location /order {
             proxy_pass http://192.168.1.4:8080$request_uri;
          }
       }

      配置成功后登录系统,在 redis 中查询用户信息:

      127.0.0.1:6379> keys *
      1) "spring:session:expirations:1562577660000"
      2) "spring:session:sessions:1076c2bd-95b1-4f23-abd4-ab3780e32f6f"
      3) "spring:session:sessions:expires:1076c2bd-95b1-4f23-abd4-ab3780e32f6f"

      小结

      这样,小明就可以开心的买娃娃了!

      以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持码农之家。

      以上就是本次介绍的微服务电子书的全部相关内容,希望我们整理的资源能够帮助到大家,感谢大家对码农之家的支持。

      上一篇:Java机器学习

      下一篇:实用机器学习

      展开 +

      收起 -

      下载地址:百度网盘下载
      微服务 相关电子书
      Spring Cloud微服务架构进阶
      Spring Cloud微服务架构进阶 PDF 完整超清版

      本书从当前流行的微服务架构理论出发,详细介绍了Spring Cloud的每一个核心模块,并提供了大量的源码讲解,以及各个核心模块和主要功能的使用方法,理论与实践相结合,可以作为微服务架构

      立即下载
      微服务实践
      微服务实践 PDF 全书完整版

      基于spring boot的开发环境对微服务进行多种类型的测试 以贯穿整书的示例为出发点 由浅入深地阐述微服务架构

      立即下载
      .NET微服务:容器化应用程序架构指南
      .NET微服务:容器化应用程序架构指南 PDF 第2版

      本书介绍了基于微服务的应用程序的开发方法,以及通过容器进行管理的方法。 本书主要讨论使用.NETCore 和 Docker 容器架构进行设计和实现的具体方法。为了让大家更快地上手使用容器和微服

      立即下载
      疯狂Spring Cloud微服务架构实战
      疯狂Spring Cloud微服务架构实战 PDF 完整版

      《疯狂Spring Cloud微服务架构实战》以Spring Cloud为基础,深入讲解微服务开发的相关框架,包括服务管理框架Eureka、负载均衡框架Ribbon、服务客户端Feign、容错框架Hystrix、消息框架Stream等。

      立即下载
      SOA架构:服务和微服务分析及设计
      SOA架构:服务和微服务分析及设计 PDF 超清第2版

      这是一本关于SOA、面向服务和服务技术方面的、端到端的教程,新版正式引入微服务和微任务抽象,可作为应用架构师、企业架构师、软件开发人员等适读书

      立即下载
      读者心得
      31小时46分钟前回答

      什么是Java分布式锁及其实现方式

      什么是分布式锁?在回答这个问题之前,我们先回答一下什么是锁。 普通的锁,即在单机多线程环境下,当多个线程需要访问同一个变量或代码片段时,被访问的变量或代码片段叫做临界区域,我们需要控制线程一个一个的顺序执行,否则会出现并发问题。 如何控制呢?就是设置一个各个线程都能看的见的标志。然后,每个线程想访问临界区域时,都要先查看标志,如果标志没有被占用,则说明目前没有线程在访问临界区域。如果标志被占用了,则说明目前有线程正在访问临界区域,则当前线程需要等待。 这个标志,就是锁。 在单机多线程的java程序中,我们可以使用堆内存中的变量作为标志,因为……

      125小时52分钟前回答

      详解Spring Boot微服务如何集成fescar解决分布式事务问题

      什么是fescar? 关于fescar的详细介绍,请参阅fescar wiki。 传统的2PC提交协议,会持有一个全局性的锁,所有局部事务预提交成功后一起提交,或有一个局部事务预提交失败后一起回滚,最后释放全局锁。锁持有的时间较长,会对并发造成较大的影响,死锁的风险也较高。 fescar的创新之处在于,每个局部事务执行完立即提交,释放本地锁;它会去解析你代码中的sql,从数据库中获得事务提交前的事务资源即数据,存放到undo_log中,全局事务协调器在回滚的时候直接使用undo_log中的数据覆盖你提交的数据。 Spring Boot如何集成fescar? 我们可以从官方代码库中看到,fescar目前提供的示例是针对使用dubbo的服务,那……

      码农之家

      利静慧 提供上传

      资源
      12
      粉丝
      7
      喜欢
      336
      评论
      10

      Copyright 2018-2021 www.xz577.com 码农之家

      版权投诉 / 书籍推广:520161757@qq.com