自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(129)
  • 资源 (2)
  • 收藏
  • 关注

原创 平衡加权轮休算法

平衡加权轮休算法原始权重: A(5) B(1) C(1)我们希望服务器请求不是 AAABCAAABC这样的模式,而是AABAACA这样,可以减轻每台服务器的压力,加权方式动态权重: 0,0,0动态权重 +原始权重最大权重运行服务器动态权重=最大值-原始权重和(-7)5 1 1 + 0 0 0 = 5 1 15A5(-7) 1 1 = -2 1 1511 + -2 11 = 3 2 23A3(-7) 2 2 = -4 2 25 1 1 + -4

2022-05-04 11:07:12 299

原创 mysql

mysqlid建议用自增的innodb每页IO16kb数据,会按主键顺序排序,若主键的存贮不是自增的,两种情况会影响性能1.后面的存的id小于当前时会重新排序2.数据大于16kb时,innodb存入数据时会不断将两个页排序,更加影响性能B+树1.每队索引4b(int类型) + 6b(指针) = 10b,每页存16k/10=1638个叶子节点;2.若每个叶子节点16k可以存1000条数据,那么两阶就可以存1638 * 1000条数据3.一般建议两层或3层最左原则最左原则,因为如果没有

2022-05-04 10:33:19 200

原创 分布式id

分布式id基本要求:全局唯一,有序递增,高可用性解决方案:UUID,数据库自增id,号段模式,redis生成,zookeeper生成,雪花算法uuid:基于当前时间,随机数,网卡的mac地址等数据生成,他能保证同一时空所有机器上都是唯一的优点是本地生成,性能高,全球唯一缺点是没有排序,不是趋势递增,uuid过长占用磁盘和内存空间较大,影响查询效率,同理需要消耗更多的网络资源auto_increment:需要一个数据库实例,任何业务系统需要分布式ID时,都来访问该数据库实例来获得分布式I

2022-05-04 10:32:36 190

原创 分布式id

分布式id基本要求:全局唯一,有序递增,高可用性解决方案:UUID,数据库自增id,号段模式,redis生成,zookeeper生成,雪花算法uuid:基于当前时间,随机数,网卡的mac地址等数据生成,他能保证同一时空所有机器上都是唯一的优点是本地生成,性能高,全球唯一缺点是没有排序,不是趋势递增,uuid过长占用磁盘和内存空间较大,影响查询效率,同理需要消耗更多的网络资源auto_increment:需要一个数据库实例,任何业务系统需要分布式ID时,都来访问该数据库实例来获得分布式I

2022-05-04 10:14:55 149

原创 强引用,软引用,弱引用,虚引用

强引用,软引用,弱引用,虚引用1.强引用和软引用若每个UserService对象占1G内容,但是总内容只用1.5G,运行以下代码不会报内存溢出,因为软引用被系统回收了private byte[] bytes = new byte[1024*1024*1024];//1G// ①软应用SoftReference<UserService> userServiceSoftReference = new SoftReference<UserService>(new UserServ

2022-05-04 10:11:57 164

原创 Spring MVC原理

Spring MVC1.原理http://localhost:8080/myapp/app/test1.localhost:8080通过8080端口找到tomcat2./myapp找到tomcat下myapp应用程序3./app①tomcat解析/webapp/WEB-INF/web.xml,②实例化DispatcherServlet,③初始化DispatcherServlet.init()并创建Spring容器XmlWebApplicationContext,将spring.xml配置

2022-05-03 10:15:31 579

原创 Spring底层原理

1.Spring前置第一个类@Componentpublic class OrderService {}第二个类@Componentpublic class UserService { @Autowired private OrderService orderService; public void test(){ System.out.println(orderService); }}配置文件@ComponentScan("com.

2022-05-03 08:04:20 188

原创 SpringBoot @RunWith注解报错

注释掉 junit 依赖 模块 clean删除掉maven仓库中的junit(从路径到内容全部删除掉)打开 junit依赖 并加载

2020-09-02 20:21:15 329

原创 JAVAEE细细看 开发日常 04 - ProcessBuilder 来调用第三方应用程序

ProcessBuilder1. 调用第三方应用程序 @Test public void testProcessBuilder() throws IOException { //创建processBuilder对象 ProcessBuilder processBuilder = new ProcessBuilder(); //设置第三方应用程序的命令// processBuilder.command("ping","127.0

2020-08-03 14:12:24 224

原创 JAVAEE细细看 开发日常 03 (六) - ElasticSearch 集群管理

集群管理ES通常以集群方式工作,这样做不仅能够提高 ES的搜索能力还可以处理大数据搜索的能力,同时也增加了系统的容错能力及高可用,ES可以实现PB级数据的搜索。下图是ES集群结构的示意图:从上图总结以下概念:1、结点ES集群由多个服务器组成,每个服务器即为一个Node结点(该服务只部署了一个ES进程)。2、分片当我们的文档量很大时,由于内存和硬盘的限制,同时也为了提高ES的处理能力、容错能力及高可用能力,我们将索引分成若干分片,每个分片可以放在不同的服务器,这样就实现了多个服务器共同对外提供

2020-07-28 21:02:57 143

原创 JAVAEE细细看 开发日常 03 (五) - ElasticSearch 搜索管理

搜索管理1、准备环境创建xc_course索引库。创建如下映射post:http://localhost:9200/xc_course/doc/_mapping{ "properties": { "description": { "type": "text", "analyzer": "ik_max_word",

2020-07-28 20:55:19 128

原创 JAVAEE细细看 开发日常 03 (四) - ElasticSearch 索引管理

索引管理1. ES客户端ES提供多种不同的客户端:1、TransportClientES提供的传统客户端,官方计划8.0版本删除此客户端。2、RestClientRestClient是官方推荐使用的,它包括两种:Java Low Level REST Client和 Java High Level REST Client。ES在6.0之后提供 Java High Level REST Client, 两种客户端官方更推荐使用 Java High Level REST Client,不过当前

2020-07-28 20:38:34 123

原创 JAVAEE细细看 开发日常 03 (三) - ElasticSearch 基础之映射类型

映射映射维护方法1、查询所有索引的映射:GET: http://localhost:9200/_mapping2、创建映射post 请求:http://localhost:9200/xc_course/doc/_mapping { "properties": { "name": { "type": "text" }, "description": { "type":

2020-07-28 20:25:01 299

原创 JAVAEE细细看 开发日常 03 (二) - ElasticSearch 基础之概念

ES快速入门ES作为一个索引及搜索服务,对外提供丰富的REST接口,使用head插件来测试。1. 创建索引库ES的索引库是一个逻辑概念,它包括了分词列表及文档列表,同一个索引库中存储了相同类型的文档。它就相当于MySQL中的表,或相当于Mongodb中的集合。索引(名词):ES是基于Lucene构建的一个搜索服务,它要从索引库搜索符合条件索引数据。索引(动词):索引库刚创建起来是空的,将数据添加到索引库的过程称为索引。两种创建索引库的方法,们的工作原理是相同的,都是客户端向ES服务发送命令。1

2020-07-28 20:23:57 159

原创 JAVAEE细细看 开发日常 03 (一) - ElasticSearch 安装与启动

ElasticSearch默认端口: 9200官方网址:https://www.elastic.co/cn/products/elasticsearchGithub:https://github.com/elastic/elasticsearch概述1、elasticsearch是一个基于Lucene的高扩展的分布式搜索服务器,支持开箱即用。2、elasticsearch隐藏了Lucene的复杂性,对外提供Restful 接口来操作索引、搜索。突出优点:1.扩展性好,可部署上百台服务器集群,

2020-07-28 19:12:21 230

原创 JAVAEE细细看 开发日常 02 - 异常处理

异常处理概述:1、自定义异常类型。2、自定义错误代码及错误信息。3、对于可预知的异常由程序员在代码中主动抛出,由SpringMVC统一捕获。可预知异常是程序员在代码中手动抛出本系统定义的特定异常类型,由于是程序员抛出的异常,通常异常信息比较齐全,程序员在抛出时会指定错误代码及错误信息,获取异常信息也比较方便。4、对于不可预知的异常(运行时异常)由SpringMVC统一捕获Exception类型的异常。不可预知异常通常是由于系统出现bug、或一些不要抗拒的错误(比如网络中断、服务器宕机等),异

2020-07-26 14:09:16 188

原创 JAVAEE细细看 开发日常 01 - MongoDB

MongoDb数据库概述Mongodb是非关系型数据库,存储Json格式数据 ,数据格式灵活。官方地址:https://www.mongodb.com/1. mac 下安装mongoDb列出已安装的软件, 如果已经安装过了,根据你的情况,执行下面的删除brew list 卸载原来的brew services stop mongodbbrew uninstall mongodb从2018年开始,mongodb不再开源安装brew tap mongodb/brewbrew inst

2020-07-12 19:34:30 134

原创 JAVAEE细细看 框架33 - docker(六) docker的核心原理

01.docker的核心原理docker在linux下可以使用namespace、control groups、union filesystem三种技术来实现虚拟化。但在windows和mac下,只能通过这两种操作系统自身的虚拟机技术来使用。‘02.Namespaces命名空间在日常使用 Linux 时,我们并没有运行多个完全分离的服务器的需要,但是如果我们在服务器上启动了多个服务,这些服务其实会相互影响的,每一个服务都能看到其他服务的进程,也可以访问宿主机上的任意文件,这是很多时候我们都不愿意

2020-07-10 18:58:47 235

原创 JAVAEE细细看 框架33 - docker(五) 私有仓库搭建 registry

Docker 私有仓库一、私有仓库搭建# 1、拉取私有仓库镜像 docker pull registry# 2、启动私有仓库容器 docker run -id --name=registry -p 5000:5000 registry# 3、打开浏览器 输入地址http://私有仓库服务器ip:5000/v2/_catalog,看到{"repositories":[]} 表示私有仓库 搭建成功# 4、修改daemon.json vim /etc/docker/daemon.json

2020-07-10 18:56:47 105

原创 JAVAEE细细看 框架33 - docker(四) Docker Compose

Docker Compose一、安装Docker Compose# Compose目前已经完全支持Linux、Mac OS和Windows,在我们安装Compose之前,需要先安装Docker。下面我 们以编译好的二进制包方式安装在Linux系统中。 curl -L https://github.com/docker/compose/releases/download/1.22.0/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docke

2020-07-10 18:41:25 186

原创 JAVAEE细细看 框架33 - docker(三) Dockerfile

Dockerfile关键字作用备注FROM指定父镜像指定dockerfile基于那个image构建MAINTAINER作者信息用来标明这个dockerfile谁写的LABEL标签用来标明dockerfile的标签 可以使用Label代替Maintainer 最终都是在docker image基本信息中可以查看RUN执行命令执行一段命令 默认是/bin/sh 格式: RUN command 或者 RUN [“command” , “param1”,“p

2020-07-10 18:37:16 109

原创 JAVAEE细细看 框架33 - docker(二) 应用部署

Docker 应用部署一、部署MySQL搜索mysql镜像docker search mysql拉取mysql镜像docker pull mysql:5.6创建容器,设置端口映射、目录映射# 在/root目录下创建mysql目录用于存储mysql数据信息mkdir ~/mysqlcd ~/mysqldocker run -id \-p 3307:3306 \--name=c_mysql \-v $PWD/conf:/etc/mysql/conf.d \-v $P

2020-07-10 18:31:51 113

原创 JAVAEE细细看 框架33 - docker(一) 安装、镜像、容器、数据卷

概述:docker是一种容器技术,解决软件跨环境迁移的问题安装yum install -y docker-ce#ifconfig命令不好使yum install -y net-tools#vimyum install -y vim安装dockeryum install -y docker-ce1. docker架构仓库:hub.docker.com镜像:是一堆文件容器:是根据镜像创建出来的小型linux系统配置镜像加速器vi /etc/docker/daemon.json

2020-07-10 18:26:53 153

原创 JAVAEE细细看 框架32 - SpringCloud 微服务(十四) Turbine聚合监控

Turbine聚合监控一、搭建监控模块1. 创建监控模块创建hystrix-monitor模块,使用Turbine聚合监控多个Hystrix dashboard功能,2. 引入Turbine聚合监控起步依赖<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSch

2020-07-09 19:16:08 226

原创 JAVAEE细细看 框架32 - SpringCloud 微服务(十三) Spring Cloud Gateway 内置的过滤器工厂

Spring Cloud Gateway 内置的过滤器工厂内置的过滤器工厂Spring Cloud Gateway内置的所有过滤器工厂整理成了一张表格。如下:过滤器工厂作用参数AddRequestHeader为原始请求添加HeaderHeader的名称及值AddRequestParameter为原始请求添加请求参数参数名称及值AddResponseHeader为原始响应添加HeaderHeader的名称及值DedupeResponseHeader剔

2020-07-09 19:11:42 116

原创 JAVAEE细细看 框架32 - SpringCloud 微服务(十二) 链路追踪 - Sleuth+Zipkin

Sleuth+Zipkin-概述Spring Cloud Sleuth 其实是一个工具,它在整个分布式系统中能跟踪一个用户请求的过程,捕获这些跟踪数据,就能构建微服务的整个调用链的视图,这是调试和监控微服务的关键工具。耗时分析可视化错误链路优化Zipkin 是 Twitter 的一个开源项目,它致力于收集服务的定时数据,以解决微服务架构中的延迟问题,包括数据的收集、存储、查找和展现1. Trace 和span一个请求到达应用后所调用的所有服务所有服务组成的调用链就像一个树结构(如下

2020-07-09 19:08:36 200

原创 JAVAEE细细看 框架32 - SpringCloud 微服务(十一) 消息驱动 - Spring Cloud Stream

Spring Cloud Stream概述Spring Cloud Stream 是一个构建消息驱动微服务应用的框架。Stream 解决了开发人员无感知的使用消息中间件的问题,因为Stream对消息中间件的进一步封装,可以做到代码层面对中间件的无感知,甚至于动态的切换中间件,使得微服务开发的高度解耦,服务可以关注更多自己的业务流程Spring Cloud Stream目前支持两种消息中间件RabbitMQ和Kafka1. stream-组件 2. stream-消息生产者创建消息生产者

2020-07-09 18:55:19 82

原创 JAVAEE细细看 框架32 - SpringCloud 微服务(十) 消息中间件 - Spring Cloud Bus

Spring Cloud Bus概述Spring Cloud Bus 是用轻量的消息中间件将分布式的节点连接起来,可以用于广播配置文件的更改或者服务的监控管理。关键的思想就是,消息总线可以为微服务做监控,也可以实现应用程序之间相通信。• Spring Cloud Bus 可选的消息中间件包括 RabbitMQ 和 Kafka 。可以使用Spring Cloud Bus来实现配置的自动更新。需要注意的是Spring Cloud Bus底层是基于RabbitMQ实现的,默认使用本地的

2020-07-09 18:49:37 182

原创 JAVAEE细细看 框架32 - SpringCloud 微服务(九) 配置中心 - Spring Cloud Config

Spring Cloud Config解决了在分布式场景下多环境配置文件的管理和维护。好处:• 集中管理配置文件(码云,github)• 不同环境不同配置,动态化的配置更新• 配置信息改变时,不需要重启即可更新配置信息到服务配置中心本质上也是一个微服务,同样需要注册到Eureka服务注册中心!1. config-快速入门-gitee搭建远程仓库搭建gitee远程仓库,最好设置私有##04-config-快速入门-config server搭建 7:35config server

2020-07-09 18:44:00 150

原创 JAVAEE细细看 框架32 - SpringCloud 微服务(八) 网关 - Gateway

Gateway-概述Spring Cloud Gateway是Spring官网基于Spring 5.0、 Spring Boot 2.0、Project Reactor等技术开发的网关服务。Spring Cloud Gateway基于Filter链提供网关基本功能:安全、监控/埋点、限流等。Spring Cloud Gateway为微服务架构提供简单、有效且统一的API路由管理方式。Spring Cloud Gateway是替代Netflix Zuul的一套解决方案。Spring Cloud

2020-07-07 19:16:55 439

原创 JAVAEE细细看 框架32 - SpringCloud 微服务(七) 熔断器 - Hystrix

Hystrix-概述Hystrix 在英文里面的意思是 豪猪,它的logo 看下面的图是一头豪猪,它在微服务系统中是一款提供保护机制的组件,和eureka一样也是由netflix公司开发。主页:https://github.com/Netflix/Hystrix/那么Hystrix的作用是什么呢?具体要保护什么呢?• Hystix 是 Netflix 开源的一个延迟和容错库,用于隔离访问远程服务、第三方库,防止出现级联失败(雪崩)。• 雪崩:一个服务失败,导致整条链路的服务都失败的情形。

2020-07-07 19:08:35 227

原创 JAVAEE细细看 框架32 - SpringCloud 微服务(六) 负载均衡 - Feign

目标能够说出什么是 Feign说出工作原理以及解决了什么问题能够运用Feign实现远程服务调用运用Feign实现微服务之间的调用Feign-概述• Feign 是一个声明式的 REST 客户端,它用了基于接口的注解方式,很方便实现客户端配置。• Feign 最初由 Netflix 公司提供,但不支持SpringMVC注解,后由 SpringCloud 对其封装,支持了SpringMVC注解,让使用者更易于接受。Feign也叫伪装:Feign可以把Rest的请求进行隐藏,伪装成类似Sp

2020-07-07 18:55:11 116

原创 JAVAEE细细看 框架32 - SpringCloud 微服务(五) 负载均衡 - ribbon

Ribbon 客户端负载均衡-概述Ribbon是Netflix提供的一个基于HTTP和TCP的客户端负载均衡器客户端负载均衡-简化RestTemplate调用使用Ribbon简化restTemplate使用①在声明restTemplate时加@LoadBalancedpackage com.itheima.consumer.config;import org.springframework.cloud.client.loadbalancer.LoadBalanced;import org.

2020-07-07 18:45:04 113

原创 JAVAEE细细看 框架32 - SpringCloud 微服务(四) 服务治理-Nacos

Nacos 概述Nacos(Dynamic Naming and Configuration Service) 是阿里巴巴2018年7月开源的项目。• 它专注于服务发现和配置管理领域 致力于帮助您发现、配置和管理微服务。Nacos 支持几乎所有主流类型的“服务”的发现、配置和管理。• 一句话概括就是Nacos = Spring Cloud注册中心 + Spring Cloud配置中心。• 官网:https://nacos.io/• 下载地址: https://github.com/alibaba

2020-07-07 18:35:27 216

原创 JAVAEE细细看 框架32 - SpringCloud 微服务(三) 服务治理-Consul

Consul 概述Consul 是由 HashiCorp 基于 Go 语言开发的,支持多数据中心,分布式高可用的服务发布和注册服务软件。• 用于实现分布式系统的服务发现与配置。• 使用起来也较 为简单。具有天然可移植性(支持Linux、windows和Mac OS X);安装包仅包含一个可执行文件,方便部署 。• 官网地址:https://www.consul.io开发模式consul agent -dev服务模式 可以保留以前数据consul agent -server -ui -boo

2020-07-07 18:32:42 132

原创 JAVAEE细细看 框架32 - SpringCloud 微服务(二) 服务治理-Eureka

Eureka介绍Eureka• Eureka 是 Netflix 公司开源的一个服务注册与发现的组件 。• Eureka 和其他 Netflix 公司的服务组件(例如负载均衡、熔断器、网关等) 一起,被 Spring Cloud 社区整合为Spring-Cloud-Netflix 模块。• Eureka 包含两个组件:Eureka Server (注册中心) 和 Eureka Client (服务提供者、服务消费者)。1. Eureka快速入门-环境搭建1、搭建eureka-provide

2020-07-07 18:27:33 159

原创 JAVAEE细细看 框架32 - SpringCloud 微服务(一) 概述

1. Feign应用目标:Feign的作用;使用Feign实现consumer-demo代码中调用服务分析:导入启动器依赖;开启Feign功能;编写Feign客户端;编写一个处理器ConsumerFeignController,注入Feign客户端并使用;测试小结:Feign主要作用:自动根据参数拼接http请求地址。启动器依赖; <dependency> <groupId>org.springframework.c

2020-05-20 21:37:36 184

原创 JAVAEE细细看 新特性:反射

事例:自定义注解:import java.lang.annotation.*;@Retention(RetentionPolicy.RUNTIME)@Target(value={ElementType.TYPE,ElementType.METHOD,ElementType.FIELD})@Documented@Inherited //可以继承public @interface TestAnno { String value() default "";}测试类@TestAn

2020-05-16 21:37:55 154

原创 JAVAEE细细看 框架31 - RabbitMQ基础

RabbitMQ 特性消息可靠性投递Consumer ACK消费端限流TTL死信队列延迟队列日志与监控消息可靠性分析与追踪管理RabbitMQ应用问题消息可靠性保障消息幂等性处理RabbitMQ集群搭建RabbitMQ高可用集群2.消息可靠投递-Confirm在使用 RabbitMQ 的时候,作为消息发送方希望杜绝任何消息丢失或者投递失败场景。RabbitMQ 为我们提供了两种方式用来控制消息的投递可靠性模式。confirm 确认模式return 退

2020-05-14 16:54:41 162

原创 JAVAEE细细看 框架30 - 消息队列、RabbitMQ入门

1. 消息队列概述能够说出什么是消息队列能够安装RabbitMQ能够编写RabbitMQ的入门程序能够说出RabbitMQ的5种模式特征能够使用SpringBoot整合RabbitMQ目标:能够说出什么是消息队列;为什么使用消息队列;常见产品有哪些小结:MQ全称为Message Queue,消息队列是应用程序和应用程序之间的通信方法。MQ的优势和劣势:优势:应用解耦异步提速削峰填谷劣势:系统可用性降低系统复杂度提高一致性问题我们举个例子说明一下消息队列的作

2020-05-13 17:17:52 252

iOS app 调用音乐永久后台运行

---已处理电话事件和其他音乐app干扰,为了测试,内置音乐是有声的,需要你自己去找或手机简单录制无声音乐,以达到神不知鬼不觉的后台持续运行.

2015-09-14

选择和生成相册图片

在相册中添加底部图片选择容器,将选择的图片缩小并在底部排开,并动态实现删除不需要的,已经被选择的图片;

2015-03-29

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除