第五阶段
第五阶段
GTC_GZ
这个作者很懒,什么都没留下…
展开
-
java编程基础(六)递归
文章目录递归递归求阶乘逻辑分析代码递归解汉诺塔逻辑分析代码递归递归是指在方法中调用自身 void f() { f(); }递归算法的运算逻辑,是将复杂问题一步步简化,简化成最简问题,然后再倒推求出结果,请看下面的例子:递归求阶乘逻辑分析求5的阶乘可以简化成求4的阶乘再乘5,依次类推,简化阶乘的最简问题:求0的阶乘,0的阶乘规定是1。再从0的阶乘倒推求出结果。代码package demo1;import java.math.BigInteger;import jav原创 2020-11-05 20:14:56 · 175 阅读 · 0 评论 -
java编程基础(五)二分法查找
文章目录二分法查找逻辑分析代码二分法查找逻辑分析二分法查找是在一组有序数据中寻找目标值,并获得目标值所在的下标位置。二分法查找也叫折半查找,基本逻辑是每次都向中间位置找,然后缩小一半范围再向中间位置找,请看下面的示例:查找结束时,低位下标和高位下标可以重叠,请看下面的演示:如果低位下标和高位下标交叉,则说明查找的目标值不存在。最终 lo 下标值则是目标值应插入的位置:代码package demo1;import java.util.Arrays;import java.util.R原创 2020-11-05 20:03:38 · 148 阅读 · 0 评论 -
java编程基础(四)选择排序
文章目录选择排序运算逻辑分析代码选择排序运算逻辑分析选择排序的运算逻辑是,挑选比i位置小的值交换到i位置代码package demo1;import java.util.Arrays;import java.util.Random;public class SelectionSort { public static void main(String[] args) { int[] a = rnd(); System.out.println(Arr原创 2020-11-05 19:59:32 · 139 阅读 · 0 评论 -
java编程基础(三)冒泡排序
文章目录冒泡排序运算逻辑分析代码冒泡排序优化代码代码仓库冒泡排序运算逻辑分析从上面的演示看到,排序运算主要依靠j向前递减来完成,j递减过程做两件事:较小值向前移动最小值移动到i位置代码package demo3;import java.util.Arrays;import java.util.Random;public class Test1 { public static void main(String[] args) { int[] a = rnd(原创 2020-11-05 19:53:06 · 112 阅读 · 0 评论 -
java编程基础(二)位运算符
文章目录位运算符位运算1. 位与 &2. 位或 |3. 异或 ^4. 求反 ~移位运算带符号右移位不带符号右移位面试题练一练1. 获得任意`int`整数的二进制码代码2. `int`整数的32位,分拆成4个`byte`值代码合并第一个字节合并第二个字节代码代码仓库位运算符针对二进制运算,java提供了位运算符:运算符说明&位与|位或^异或~求反<<左移位>>带符号右移位>>>原创 2020-11-05 19:44:06 · 631 阅读 · 0 评论 -
java编程基础(一)二进制
二进制对于任何已知类型的传统计算机而言,均以1和0作为编码形式进行程序计算。在电路结构中,高电平与低电平对应表示1和0。计算机内部表示任何数据都是用二进制。而与人进行交互时,可以将数据转换成人可以理解的内容:10进制、文字、图片、音频视频。不同进制的计算方式是相通的:十进制十进制逢十进一二进制二进制逢二进一9+1 --> 101+1 --> 1099+1 --> 10011+1 --> 100从0开始一直加1:十进制二进制原创 2020-11-05 19:17:21 · 386 阅读 · 0 评论 -
RocketMQ 发送事务消息原理分析和代码实现
文章目录事务消息事务消息的原理生产者消费者事务消息RocketMQ 提供了可靠性消息,也叫事务消息。下面分析一下其原理。事务消息的原理下面来看 RocketMQ 的事务消息是如何来发送“可靠消息”的,只需要以下三步:发送半消息(半消息不会发送给消费者)执行本地事务提交消息完成事务消息发送后,消费者就可以以正常的方式来消费数据。RocketMQ 的自动重发机制在绝大多数情况下,都可以保证消息被正确消费。假如消息最终消费失败了,还可以由人工处理进行托底。上面分析的是正常情况原创 2020-11-03 08:32:30 · 232 阅读 · 0 评论 -
RocketMQ (五) Springboot 整合 RocketMQ 收发消息样例
文章目录pom文件yml 配置application.ymlapplication-demo1.ymlapplication-demo2.ymldemo 1demo 2pom文件创建 springboot 项目,添加rocketmq-spring-boot-starter依赖。<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http原创 2020-11-03 08:31:56 · 594 阅读 · 0 评论 -
RocketMQ (四) 使用RocketMQ原生API收发消息代码样例
文章目录pom文件同步消息生产者消费者异步消息生产者消费者单向消息生产者消费者顺序消息生产者消费者延时消息生产者消费者批量消息生产者消费者消息过滤Tag 过滤对自定义属性过滤生产者消费者事务消息事务消息的原理生产者消费者pom文件新建 maven 项目或 module,添加 rocketmq-client 依赖。<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.原创 2020-11-03 08:31:14 · 657 阅读 · 0 评论 -
RocketMQ (三) 基本原理
文章目录Topic 基本原理在Rocketmq集群中新建 Topic1perm 参数的含义Topic 收发消息原理生产者的负载均衡消费者的负载均衡AllocateMessageQueueAveragely 平均分配AllocateMessageQueueAveragelyByCircle 环形分配AllocateMessageQueueConsistentHash 一致性哈希问题NameServer 基本原理基本认识Broker、Producer、Consumer 与NameServer的通信Topic原创 2020-11-03 08:30:47 · 240 阅读 · 0 评论 -
RocketMQ (二) 双主双从同步复制集群方案
部署环境作为测试环境,我们使用两台虚拟机来部署双主双从环境,具体结构如下:整个集群由两个 name server 实例和**四个 broker **实例组成name server:两台服务器分别启动两个name serverbroker A 主从:服务器1部署 broker A 主服务服务器2部署 broker A 从服务broker B 主从:服务器2部署 broker B 主服务服务器1部署 broker B 从服务安装 Rocketmq首先参照《RocketMQ原创 2020-11-03 08:30:16 · 306 阅读 · 0 评论 -
RocketMQ (一) 安装
文章目录文件下载安装安装配置 jdk81. 上传jdk压缩文件2. 解压缩3. 配置环境变量4. 验证安装 RocketMQ1. 下载 rocketmq 二进制文件2. 解压缩 rocketmq3. 配置环境变量 ROCKETMQ_HOME 和 PATH4. 减小 rocketmq 使用的内存修改 `name server` 内存改为 256m修改 `broker` 内存改为 256m5. 启动 rocketmq6. 关闭防火墙测试RocketMQ 的关闭命令关闭 broker关闭 nameserver管理原创 2020-11-03 08:27:15 · 887 阅读 · 0 评论 -
分布式事务(八)Spring Cloud微服务系统基于Rocketmq可靠消息最终一致性实现分布式事务
文章目录安装搭建 Rocketmq 服务器基于 Rocketmq 可靠消息的分布式事务方案原理准备订单项目案例新建 rocketmq-dtx 工程导入订单项目,无事务版本下载项目代码解压到 rocketmq-dtx 目录导入项目order 添加事务状态表order 发送事务消息,并执行本地事务Rocketmq 中添加 Topicorder-parent 中添加 rocketmq 起步依赖order 项目中添加 rocketmq 连接信息配置:添加 TxMapper 访问事务状态表Json处理工具废弃` Or原创 2020-11-03 08:29:02 · 636 阅读 · 0 评论 -
分布式事务(七)Seata TCC模式-Spring Cloud微服务添加 TCC 分布式事务
文章目录准备订单项目案例新建 seata-tcc 工程导入订单项目,无事务版本下载项目代码解压到 seata-tcc 目录导入项目order启动全局事务,添加“保存订单”分支事务order-parent 添加 seata 依赖配置application.ymlregistry.conf 和 file.confOrderMapper 添加更新订单状态、删除订单Seata 实现订单的 TCC 操作方法在业务代码中调用 Try 阶段方法启动 order 进行测试storage添加“减少库存”分支事务配置Stora原创 2020-11-03 08:27:55 · 604 阅读 · 0 评论 -
分布式事务(六)Seata TCC模式-TCC模式介绍
文章目录TCC 基本原理第一阶段 Try第二阶段 Confirm第二阶段 Cancel多个事务并发的情况Seata TCC事务模式项目源码: https://gitee.com/benwang6/seata-samplesTCC 基本原理TCC 与 Seata AT 事务一样都是两阶段事务,它与 AT 事务的主要区别为:TCC 对业务代码侵入严重每个阶段的数据操作都要自己进行编码来实现,事务框架无法自动处理。TCC 效率更高不必对数据加全局锁,允许多个事务同时操作数据。第一阶段 T原创 2020-11-02 16:23:50 · 903 阅读 · 0 评论 -
分布式事务(五)Seata AT模式-Spring Cloud微服务添加 AT 分布式事务
文章目录下载订单项目案例(无事务版)Seata Server - TC全局事务协调器Seata Server 配置registry.conffile.conf启动参数设置启动 Seata Serverorder订单服务添加 Seata AT 事务order-parent 添加 seata 依赖配置application.ymlregistry.conffile.conf创建 seata 数据源代理启动全局事务启动 order 项目进行测试测试出现异常,回滚的情况storage库存服务添加 Seata AT原创 2020-11-02 16:18:14 · 649 阅读 · 0 评论 -
分布式事务(四)Seata AT模式-Spring Cloud微服务案例
文章目录订单业务案例创建 Empty Project:seata-at数据库初始化工具新建Module:db-initapplication.yml 配置添加 sql 脚本文件主程序中添加代码,执行sql脚本eureka注册中心新建 Module:eureka-serverapplication.yml 配置主程序添加 `@EnableEurekaServer `注解父项目新建 Module,选择 Maven 项目:修改 pom.xmlaccount账户项目新建 Module:account修改 pom.x原创 2020-11-02 15:46:01 · 3414 阅读 · 1 评论 -
分布式事务(三)Seata分布式事务框架-AT模式介绍
文章目录Seata介绍Seata AT事务方案业务场景Seata AT基本原理第一阶段:执行各分支事务第二阶段:控制全局事务最终提交第二阶段:控制全局事务最终回滚Seata AT具体工作机制第一阶段:执行分支事务第二阶段:控制全局事务最终回滚第二阶段:控制全局事务最终提交Seata介绍Seata 是一款开源的分布式事务解决方案,致力于提供高性能和简单易用的分布式事务服务。Seata 将为用户提供了 AT、TCC、SAGA 和 XA 事务模式,为用户打造一站式的分布式解决方案。2019 年 1 月,阿里原创 2020-11-02 12:54:41 · 697 阅读 · 0 评论 -
分布式事务(二)分布式事务方案
文章目录什么是分布式事务理论部分CAP在分布式事务中,BASE分布式事务方案什么是分布式事务首先这是普通事务:下面是分布式事务:在微服务系统中,每个微服务应用都可能会有自己的数据库,它们首先需要控制自己的本地事务。一项业务操作可能会调用执行多个微服务。如何保证多个服务执行的多个数据库的操作整体成功或整体失败?这就是分布式事务要解决的问题。理论部分CAP 和 BASE 是对大规模互联网系统分布式实践的理论总结,如果没有实践为基础理论则难以理解。这里建议先对分布式事务进行实践,之后再来阅读理原创 2020-11-02 12:04:14 · 287 阅读 · 0 评论 -
分布式事务(一)Mysql本地事务和事务隔离级别
文章目录数据库事务数据操作的最小单元是事务,而不是一条sql语句!Mysql 事务操作开始事务提交事务回滚事务Mysql 事务操作测试1.准备测试表2. 测试测试一测试二事务特性 ACIDA - 原子性 AtomicC - 一致性 ConsistencyI - 隔离性 IsolationD - 持久性 Durancy数据库并发访问冲突问题脏读不可重复读幻读Mysql 的四种事务隔离级别Mysql 设置隔离级别Mysql 隔离级别测试测试一测试二测试三测试四数据库事务数据库事务由一组sql语句组成。所有原创 2020-11-02 11:56:26 · 640 阅读 · 0 评论 -
k8s部署Spring Cloud应用
文章目录下载并导入第18章代码构建镜像将 centos:7 镜像导入服务器jdk镜像eureka镜像item-service 镜像user-service 镜像order-service 镜像导出镜像,再导入其他服务器部署eurekaitem-serviceuser-serviceorder-service下载并导入第18章代码https://github.com/benwang6/spring-cloud-repo只导入前5个项目修改2,3,4,5项目的yml配置,添加相面配置,使用ip注册eu原创 2020-11-02 10:59:47 · 515 阅读 · 0 评论 -
Kubernetes
文章目录安装kubernetes集群准备第一台虚拟机设置虚拟机cpu上传离线安装文件准备离线安装环境导入镜像准备三台服务器从第一台虚拟机克隆两台虚拟机在master上继续配置安装环境配置集群服务器的ip一键安装k8s集群设置kubectl命令别名配置自动补全验证安装初步尝试 kubernetes使用 ReplicationController 和 pod 部署应用使用 service 对外暴露 podpod自动伸缩pod使用部署文件手动部署pod查看pod的部署文件查看pod日志pod端口转发pod 标签创原创 2020-11-02 10:52:23 · 2410 阅读 · 1 评论 -
Docker案例
文章目录关闭防火墙启动或重启dockerredis加载镜像启动容器jedis 连接测试新建测试项目pom.xml编写测试类在容器中查看数据启动多个 redis 容器jedis 分片测试在容器中查看数据容器互联创建docker虚拟网络mysql加载 mariadb 镜像创建数据卷启动 mariadb 容器,并挂载数据卷进入容器,登录mysql测试连接数据库,导入数据tomcat加载 tomcat 镜像启动 tomcat 容器访问测试关闭防火墙# 关闭防火墙systemctl stop firewalld原创 2020-11-02 09:25:13 · 655 阅读 · 0 评论 -
Docker
docker官网是这样介绍docker的:Docker is an open platform for developers and sysadmins to build, ship, and run distributed applications…其实看完这句话还是不明白docker究竟是什么我们可以把他想象成是一个用了一种新颖方式实现的超轻量虚拟机。当然在实现的原理和应用上还是和VM有巨大差别的,并且专业的叫法是应用容器(Application Container)。比如现在想用MySQL原创 2020-11-02 09:12:50 · 1786 阅读 · 0 评论 -
Lucene Solr 811
文章目录solrlucene倒排索引实际举例lucene API 介绍创建索引新建 maven 项目,添加依赖创建测试类,添加以下代码查看索引运行 luke查看文档指定分词器,并测试分词查询测试从索引查询solr 安装下面我们来安装 solr 服务器解压 solr启动 solr浏览器访问 solr 控制台创建 core复制默认配置创建名为 pd 的 core中文分词测试中文分词工具 - ik-analyzer使用 ik-analyzer 对中文进行分词测试设置停止词准备 mysql 数据库数据从 mysql原创 2020-10-31 16:16:28 · 1155 阅读 · 0 评论 -
RabbitMQ - Spring boot 整合
文章目录新建项目pom.xmlapplication.yml主程序简单模式主程序生产者消费者测试类工作模式主程序生产者消费者测试类ack模式设置 ack 模式手动执行确认操作抓取数量发布和订阅模式主程序生产者消费者测试类路由模式主程序生产者消费者测试类主题模式主程序生产者消费者测试类RPC异步调用主程序服务端客户端测试类新建项目pom.xml<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.ap原创 2020-10-31 11:01:52 · 153 阅读 · 0 评论 -
RabbitMQ
文章目录RabbitMQ 使用场景服务解耦流量削峰异步调用rabbitmq 基本概念ExchangeMessage QueueBinding KeyRouting Keyrabbitmq安装离线安装下载离线安装包文件上传离线安装包切换到`rabbitmq-install`目录安装Yum在线安装启动rabbitmq服务器rabbitmq管理界面启用管理界面重启RabbitMQ服务访问添加用户添加用户设置访问权限开放客户端连接端口rabbitmq六种工作模式简单模式pom.xml生产者发送消息消费者接收消息工作原创 2020-10-31 10:34:23 · 793 阅读 · 1 评论 -
Spring Cloud入门操作手册(Hoxton)
文章目录环境spring cloud 介绍spring cloud 技术组成Spring Cloud 对比 Dubbo一、service - 服务二、commons 通用项目新建 maven 项目pom.xmljava 源文件pojoItemUserOrderserviceItemServiceUserServiceOrderServiceutilCookieUtilJsonUtilJsonResult三、item service 商品服务新建 spring b原创 2020-10-30 17:23:24 · 948 阅读 · 0 评论 -
第五阶段笔记总汇目录
文章目录(Spring Cloud 微服务)[#Spring Cloud 微服务]RabbitMQLucene SolrDockerKubernetes分布式事务RocketMQJava基础<a href=”#Spring Cloud 微服务”>Spring Cloud入门操作手册(Hoxton)RabbitMQRabbitMQRabbitMQ - Spring boot 整合Lucene SolrLucene Solr 811DockerDockerDock原创 2020-10-30 09:16:49 · 253 阅读 · 0 评论