首页 文章 精选 留言 我的

精选列表

搜索[响应式微服务],共10028篇文章
优秀的个人博客,低调大师

Dcoker安装(在线仓库),最新的服务器搭配容器使用

前言 什么是Docker Docker是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的镜像中,然后发布到任何流行的Linux或Windows机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口。 Docker与虚拟机对比 虚拟机 资源占用多,虚拟机会独占一部分内存和硬盘空间。它运行的时候,其他程序就不能使用这些资源了。哪怕虚拟机里面的应用程序,真正使用的内存只有 1MB,虚拟机依然需要几百 MB 的内存才能运行。 冗余步骤多,虚拟机是完整的操作系统,一些系统级别的操作步骤,往往无法跳过,比如用户登录。 启动慢,启动操作系统需要多久,启动虚拟机就需要多久。可能要等几分钟,应用程序才能真正运行。 Docker 启动快,容器里面的应用,直接就是底层系统的一个进程,而不是虚拟机内部的进程。所以,启动容器相当于启动本机的一个进程,而不是启动一个操作系统,速度就快很多。 资源占用少,容器只占用需要的资源,不占用那些没有用到的资源;虚拟机由于是完整的操作系统,不可避免要占用所有资源。另外,多个容器可以共享资源,虚拟机都是独享资源。 体积小,容器只要包含用到的组件即可,而虚拟机是整个操作系统的打包,所以容器文件比虚拟机文件要小很多。 学习注意事项 1.Centos6安装Docker和Centos7安装有所区别 2.本文讲解的是Centos7的安装,所以注意您的操作系统 3.学习Docker之前的知识储备(Linux、Maven) 4.官方安装文档 https://docs.docker.com/install/linux/docker-ce/centos 安装 环境准备 sh 复制代码 # 如果之前安装过Docker请先执行下面命令(当然为了保险起见你也可以执行下) yum remove docker docker-client docker-client-latest docker-common docker-latest docker-latest-logrotate docker-logrotate docker-engine # 安装必要依赖 yum install -y yum-utils 设置镜像仓库并安装 sh 复制代码 # 官方仓库 # yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo # 阿里云仓库 yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo # 更新 # CentOS yum makecache fast # Rocky dnf makecache # 安装 yum install -y docker-ce docker-ce-cli containerd.io # 启动&开机启动 systemctl enable docker --now 常用命令 sh 复制代码 # 启动 systemctl start docker # 停止 systemctl stop docker # 开启自启 systemctl enable docker # 版本查看 docker version # 信息查看 docker info 容器设置 设置容器信息可参考Docker容器配置 一键安装 CentOS sh 复制代码 # 如果之前安装过Docker请先执行下面命令(当然为了保险起见你也可以执行下) yum remove docker docker-client docker-client-latest docker-common docker-latest docker-latest-logrotate docker-logrotate docker-engine # 安装必要依赖 yum install -y yum-utils # 阿里云仓库 yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo # 更新 yum makecache fast # 安装 yum install -y docker-ce docker-ce-cli containerd.io # 启动&开机启动 systemctl enable docker --now # 版本查看 docker version # 创建配置目录 mkdir -p /etc/docker # 创建配置文件 tee /etc/docker/daemon.json <<-'EOF' { "registry-mirrors": [ "https://docker.m.daocloud.io", "https://uoxl1bwy.mirror.aliyuncs.com" ], "exec-opts":[ "native.cgroupdriver=systemd" ], "log-driver": "json-file", "log-opts": { "max-size": "100m", "max-file":"3" }, "insecure-registries": [ "image.xujun.org:80", "nexus.xujun.org:8088" ], "storage-driver": "overlay2" } EOF # 刷新配置文件 systemctl daemon-reload # 重启Docker systemctl restart docker # 查看信息 docker info Rocky sh 复制代码 # 如果之前安装过Docker请先执行下面命令(当然为了保险起见你也可以执行下) dnf remove docker docker-client docker-client-latest docker-common docker-latest docker-latest-logrotate docker-logrotate docker-engine # 安装必要依赖 dnf install -y yum-utils # 阿里云仓库 dnf config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo # 更新 dnf makecache # 安装 dnf install -y docker-ce docker-ce-cli containerd.io # 启动&开机启动 systemctl enable docker --now # 版本查看 docker version # 创建配置目录 mkdir -p /etc/docker # 创建配置文件 tee /etc/docker/daemon.json <<-'EOF' { "registry-mirrors": [ "https://docker.m.daocloud.io", "https://uoxl1bwy.mirror.aliyuncs.com" ], "exec-opts":[ "native.cgroupdriver=systemd" ], "log-driver": "json-file", "log-opts": { "max-size": "100m", "max-file":"3" }, "insecure-registries": [ "image.xujun.org:80", "nexus.xujun.org:8088" ], "storage-driver": "overlay2" } EOF # 刷新配置文件 systemctl daemon-reload # 重启Docker systemctl restart docker # 查看信息 docker info

优秀的个人博客,低调大师

SpringCloud+SpringBoot+mybatis分布式微服务云架构开发Web应用

在完成配置之后,举一个简单的例子,在快速入门工程的基础上,举一个简单的示例来通过Thymeleaf渲染一个页面。 @Controller public class HelloController { @RequestMapping("/") public String index(ModelMap map) { // 加入一个属性,用来在模板中读取 map.addAttribute("host", "http://blog.didispace.com"); // return模板文件的名称,对应src/main/resources/templates/index.html return "index"; } } <!DOCTYPE html> <html> <head lang="en"> <meta charset="UTF-8" /> <title></title> </head> <body> <h1 th:text="${host}">Hello World</h1> </body> </html> 如上页面,直接打开html页面展现Hello World,但是启动程序后,访问http://localhost:8080/,则是展示Controller中host的值:http://blog.didispace.com,做到了不破坏HTML自身内容的数据逻辑分离。 更多Thymeleaf的页面语法,还请访问Thymeleaf的官方文档查询使用。 Thymeleaf的默认参数配置 如有需要修改默认配置的时候,只需复制下面要修改的属性到application.properties中,并修改成需要的值,如修改模板文件的扩展名,修改默认的模板路径等。 # Enable template caching. spring.thymeleaf.cache=true # Check that the templates location exists. spring.thymeleaf.check-template-location=true # Content-Type value. spring.thymeleaf.content-type=text/html # Enable MVC Thymeleaf view resolution. spring.thymeleaf.enabled=true # Template encoding. spring.thymeleaf.encoding=UTF-8 # Comma-separated list of view names that should be excluded from resolution. spring.thymeleaf.excluded-view-names= # Template mode to be applied to templates. See also StandardTemplateModeHandlers. spring.thymeleaf.mode=HTML5 # Prefix that gets prepended to view names when building a URL. spring.thymeleaf.prefix=classpath:/templates/ # Suffix that gets appended to view names when building a URL. spring.thymeleaf.suffix=.html spring.thymeleaf.template-resolver-order= # Order of the template resolver in the chain. spring.thymeleaf.view-names= # Comma-separated list of view names that can be resolved. 支持JSP的配置Spring Boot并不建议使用,但如果一定要使用,可以参考此工程作为脚手架:JSP支持 完整项目的源码来源 技术支持1791743380

优秀的个人博客,低调大师

java版电子商务spring cloud分布式微服务-hystrix工作原理

Netflix的 Hystrix 是一个帮助解决分布式系统交互时超时处理和容错的类库, 它同样拥有保护系统的能力. Hystrix的设计原则包括:资源隔离、熔断器、命令模式。 下面的流程图展示了当使用Hystrix的依赖请求,Hystrix是如何工作的。 Hystrix主要有4种调用方式: toObservable() 方法 :未做订阅,只是返回一个Observable 。 observe() 方法 :调用 #toObservable() 方法,并向 Observable 注册 rx.subjects.ReplaySubject 发起订阅。 queue() 方法 :调用 #toObservable() 方法的基础上,调用:Observable#toBlocking() 和 BlockingObservable#toFuture() 返回 Future 对象 execute() 方法 :调用 #queue() 方法的基础上,调用 Future#get() 方法,同步返回 #run() 的执行结果。 主要的执行逻辑: 1.每次调用创建一个新的HystrixCommand,把依赖调用封装在run()方法中. 2.执行execute()/queue做同步或异步调用. 3.判断熔断器(circuit-breaker)是否打开,如果打开跳到步骤8,进行降级策略,如果关闭进入步骤. 4.判断线程池/队列/信号量是否跑满,如果跑满进入降级步骤8,否则继续后续步骤. 5.调用HystrixCommand的run方法.运行依赖逻辑 依赖逻辑调用超时,进入步骤8. 6.判断逻辑是否调用成功。返回成功调用结果;调用出错,进入步骤8. 7.计算熔断器状态,所有的运行状态(成功, 失败, 拒绝,超时)上报给熔断器,用于统计从而判断熔断器状态. 8.getFallback()降级逻辑。以下四种情况将触发getFallback调用: run()方法抛出非HystrixBadRequestException异常。 run()方法调用超时 熔断器开启拦截调用 线程池/队列/信号量是否跑满 没有实现getFallback的Command将直接抛出异常,fallback降级逻辑调用成功直接返回,降级逻辑调用失败抛出异常. 9.返回执行成功结果

优秀的个人博客,低调大师

Spring Cloud Spring Boot mybatis分布式微服务云架构(十二)返回JSON格式

在上述例子中,通过@ControllerAdvice统一定义不同Exception映射到不同错误处理页面。而当我们要实现RESTful API时,返回的错误是JSON格式的数据,而不是HTML页面,这时候我们也能轻松支持。 本质上,只需在@ExceptionHandler之后加入@ResponseBody,就能让处理函数return的内容转换为JSON格式。 下面以一个具体示例来实现返回JSON格式的异常处理。 创建统一的JSON返回对象,code:消息类型,message:消息内容,url:请求的url,data:请求返回的数据 public class ErrorInfo<T> { public static final Integer OK = 0; public static final Integer ERROR = 100; private Integer code; private String message; private String url; private T data; // 省略getter和setter } 创建一个自定义异常,用来实验捕获该异常,并返回json public class MyException extends Exception { public MyException(String message) { super(message); } } Controller中增加json映射,抛出MyException异常 @Controller public class HelloController { @RequestMapping("/json") public String json() throws MyException { throw new MyException("发生错误2"); } } 为MyException异常创建对应的处理 @ControllerAdvice public class GlobalExceptionHandler { @ExceptionHandler(value = MyException.class) @ResponseBody public ErrorInfo<String> jsonErrorHandler(HttpServletRequest req, MyException e) throws Exception { ErrorInfo<String> r = new ErrorInfo<>(); r.setMessage(e.getMessage()); r.setCode(ErrorInfo.ERROR); r.setData("Some Data"); r.setUrl(req.getRequestURL().toString()); return r; } } 启动应用,访问:http://localhost:8080/json,可以得到如下返回内容: { code: 100, data: "Some Data", message: "发生错误2", url: "http://localhost:8080/json" } 至此,已完成在Spring Boot中创建统一的异常处理,实际实现还是依靠Spring MVC的注解,更多更深入的使用可参考Spring MVC的文档。

资源下载

更多资源
Nacos

Nacos

Nacos /nɑ:kəʊs/ 是 Dynamic Naming and Configuration Service 的首字母简称,一个易于构建 AI Agent 应用的动态服务发现、配置管理和AI智能体管理平台。Nacos 致力于帮助您发现、配置和管理微服务及AI智能体应用。Nacos 提供了一组简单易用的特性集,帮助您快速实现动态服务发现、服务配置、服务元数据、流量管理。Nacos 帮助您更敏捷和容易地构建、交付和管理微服务平台。

Spring

Spring

Spring框架(Spring Framework)是由Rod Johnson于2002年提出的开源Java企业级应用框架,旨在通过使用JavaBean替代传统EJB实现方式降低企业级编程开发的复杂性。该框架基于简单性、可测试性和松耦合性设计理念,提供核心容器、应用上下文、数据访问集成等模块,支持整合Hibernate、Struts等第三方框架,其适用范围不仅限于服务器端开发,绝大多数Java应用均可从中受益。

Rocky Linux

Rocky Linux

Rocky Linux(中文名:洛基)是由Gregory Kurtzer于2020年12月发起的企业级Linux发行版,作为CentOS稳定版停止维护后与RHEL(Red Hat Enterprise Linux)完全兼容的开源替代方案,由社区拥有并管理,支持x86_64、aarch64等架构。其通过重新编译RHEL源代码提供长期稳定性,采用模块化包装和SELinux安全架构,默认包含GNOME桌面环境及XFS文件系统,支持十年生命周期更新。

Sublime Text

Sublime Text

Sublime Text具有漂亮的用户界面和强大的功能,例如代码缩略图,Python的插件,代码段等。还可自定义键绑定,菜单和工具栏。Sublime Text 的主要功能包括:拼写检查,书签,完整的 Python API , Goto 功能,即时项目切换,多选择,多窗口等等。Sublime Text 是一个跨平台的编辑器,同时支持Windows、Linux、Mac OS X等操作系统。

用户登录
用户注册