- 博客(72)
- 资源 (31)
- 收藏
- 关注
原创 初识并发编程(拓展)
1:死锁1.1基础所谓死锁,是指多个进程在运行过程中因争夺资源而造成的一种僵局,当进程处于这种僵持状态时,若无外力作用,它们都将无法再向前推进。线程死锁是指由于两个或者多个线程互相持有对方所需要的资源,导致这些线程处于等待状态,无法前往执行。当线程进入对象的synchronized代码块时,便占有了资源,直到它退出该代码块或者调用wait方法,才释放资源,在此期间,其他线程将不能进入该代码块。当线程互相持有对方所需要的资源时,会互相等待对方释放...
2021-10-28 11:04:13
314
原创 初识并发编程(六) 线程池
1:new Thread 弊端 每次 new Thread 新建对象,性能差。 线程缺乏统一管理,可能无限制的新建线程,相互竞争,有可能占用过多系统资源导致死机或 OOM。 缺少更多功能,如更多执行、定期执行、线程中断。2:线程池的好处重用存在的线程,减少对象创建、消亡的开销,性能佳。可有效控制最大并发线程数,提高系统资源利用率,同时可以避免过多资源竞争,避免阻塞。提供定时执行、...
2021-10-28 10:57:23
223
原创 初识并发编程(五) 初识 J.U.C
1:基础在 Java 5.0 提供了 java.util.concurrent (简称JUC )包,在此包中增加了在并发编程中很常用的实用工具类,用于定义类似于线程的自定义子系统,包括线程池、异步 IO 和轻量级任务框架。提供可调的、灵活的线程池。还提供了设计用于多线程上下文中的 Collection 实现等。2:AQS(AbstractQueuedSynchronizer) AQS,在java.util.concurrent.locks包中,Abstr...
2021-10-28 10:25:15
330
原创 初识并发编程(四) 线程安全策略
1:不可变对象让对象在多个线程保证 保证对象是线程安全,实际是躲避了并发。1:对象创建以后其状态就是不可修改2:对象所有域都是final类型3:对象都是正确创建的(在创建期间,this引用没有溢出)。final class(不能被集成)。private 成员,使其不能被外部访问。没有SetXXX,让其不能被外部赋值,所有可变成员设置为final... demo1: final关键字 :可以 修饰 类(不能被集成,尽量不要用来修饰类)、方法(1:锁定方法不能被集成类...
2021-10-27 17:09:37
231
原创 初识并发编程(三) 发布对象
1.基础发布:使对象能够在当前作用域之外的代码中使用对象逸出:一种错误的发布,当一个对象还没构建完成时,就被其他线程所见。不安全发布:这个代码通过public访问级别发布了类的域,在类的任何外部的线程都可以访问这些域我们无法保证其他线程会不会修改这个域,从而使私有域内的值错误(上述代码中就对私有域进行了修改)package com.mmall.concurrency.example.publish;import com.mmall.concurren...
2021-10-27 14:31:10
172
原创 初识并发编程(二) 并发编程与线程安全
1:线程安全性1.1定义 定义:当多个线程访问某个类时,不管运行时环境采用何种调度方式或者这些进程将如何交替执行,并且在主调代码中不需要任何额外的同步或协同,这个类都能表现出正确的行为,那么就称这个类是线程安全的。 原子性:提供了互斥访问,同一时刻只能有一个线程来对它进行操作。 可见性:一个线程对主内存的修改可及时的被其他线程观察到。 有序性:一个线程观察其他线程中的指令执行顺序,由于指令重排序的存在,该观察结果一般...
2021-10-27 11:27:49
165
原创 初识并发编程(一) 基础理论
1:基础并发:同时拥有两个或者多个线程,如果程序在单核处理器上运行,多个线程将交替地换入或者换出内存,这些线程是同时"存在"的,每个线程都处于执行过程中的某个状态,如果运行在多核处理器上,此时,程序中的每个线程都将分配到一个处理器核上,因此可以同时运行.高并发:高并发( High Concurrency )是互联网分布式系统架构设计中必须考虑的因素之一,它通常是指,通过设计保证系统能够同时并行处理很多请求. 高并发相关常用的一些指标有响应时间(Res...
2021-10-27 10:27:49
167
原创 Jenkins 安装以及使用
Jenkins安装于mac,服务器是Centos 7.91:环境准备1.1 docker上安装Jenkins先进入官网,然后选择docker(建议一般选择LTS【长期支持版】)将jenkins安装并运行到docker上#下载jenkins到docker上docker pull jenkins/jenkins #创建本地数据卷 实际是在/Users/mac2016/java/jenkins_home/ 此处mac2016是我使用mac的名称mkdir...
2021-10-26 11:52:38
724
原创 FastDFS(安装以及初步使用)
1.基础1.1说明●FastDFS是一 个开源的轻量级分布式文件系统,它对文件进行管理,功能包括:文件存储、文件同步、文件访问(文件上传、文件下载)等,解决了大容量存储和负载均衡的问题。特别适合以文件为载体的在线服务,如相册网站、视频网站等等。●FastDFS为互联网量身定制,充分考虑了冗余备份、负载均衡、线性扩容等机制,并注重高可用、高性能等指标,使用FastDFS很容易搭建一套高性能的文件服务 器集群提供文件上传、下载等服务。●FastDFS服务端有两个角色:跟踪器(tracker) 和
2021-07-19 23:00:26
1321
1
原创 编码小知识点-收集
122 /** * /@PathVariable是spring3.0的一个新功能:接收请求路径中占位符的值 * GetMapping中写了相关字符串、在fndPage()的括号中也必须写-用@PathVariable标记 * 请求地址:http://localhost:9011/brand/search/1/2 * @param page * @param size * @return */ @GetMapping("
2021-06-15 21:45:19
266
1
原创 ElasticSearch 入门(五)高级搜索
相关api请求格式(包括apipost直接请求服务器 和java api)https://docs.apipost.cn/preview/1c41ba44325ab590/4aec43b07172edae代码片段(qin)
2021-06-13 18:10:14
2089
1
原创 优化简洁代码(收集记录)
此文章用于记录代码优化相关方法1.Java如何使用Optional与Stream取代if判空逻辑(JDK8以上)下面代码中的List放入了很多Person对象,其中有的对象是null的,如果不加校验调用Person的getXXX()方法肯定会报空指针错误,一般我们采取的方案就是加上if判断:...
2021-06-11 15:18:27
2548
1
原创 ElasticSearch 入门(四)SpringBoot集成ElasticSearch
创建一个maven项目1.1在maven中添加引用<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 h
2021-06-07 23:08:27
556
7
原创 ElasticSearch 入门(三) ik分词器的安装以及使用
1ElasticSearch分词器分词器(Analyzer) :将一段文本, 按照定逻辑,分析成多个词语的一种工具如:华为手机---> 华为、手、手机elasticSearch内置分词器 standard Analyzer-默认分词器,按词切分,小写处理 simple Analyzer -按照非字母切分(符号被过滤),小写处理 stop Analyzer-小写处理,停用词过滤(the,a,is) whitespace Analyzer-按照空格切分,不转小写 keyword Anal
2021-06-07 14:49:02
670
原创 ElasticSearch 入门(二)脚本操作es(适合运维人员)
1.RESTful风格●REST (Representational State Transfer) ,表述性状态转移,是一组架构约束条件和原则。满足这些约束条件和原则的应用程序或设计就是RESTful。就是一种定义接口的规范。●基于HTTP。●可以使用XML格式定义或JSON格式定义。●每一个URI代表1种资源。●客户端使用GET、 POST、PUT、DELETE 4个表示操作方式的动词对服务端资源进行操作:●GET:用来获取资源●POST: 用来新建资源(也可以用于更新资源)
2021-06-07 14:21:29
536
4
原创 ElasticSearch 入门(一)基本概念以及linux安装
基础 1:使用关系型数据库性能上满足不了要求。比如去商品表中查询带有手机的商品。由于模糊查询左边加了通配符%,导致索引无效。索引无效代表数据需要一条条去匹配。导致性能极差( 使用模糊查询,左边有通配符,不会走索引,会全表扫描,性能低) =》关系型数据库性能低SELECT * FROM goods WHERE title LIKE ' %手机%' ;2:搜索关键词 比如【华为手机】,此时数据库只能搜到【华为手机】的数据,搜索不到仅仅是【华为】/【手机】的数据(可以参考去淘宝、京东等地方搜索结...
2021-06-07 11:53:30
301
原创 Kafka入门(五)spring集成kafka
已经在docker上安装zookeeper和kafka现在尝试在springBoot中集成kafka为了方便测试,将consumer和produce
2021-06-03 23:21:57
3443
4
原创 Kafka入门(四)Consumer
Consumer注意事项◆单个分区的消息 只能由ConsumerGroup中某个Consumer消费◆Consumer从Partition中消费消息 是顺序,默认从头开始消费◆单个ConsumerGroup会消费所有Partition中的消息Consumer: Producer=>1:1/1:n一个Producer不能对应同一个ConsumerGroup 多个Consumer代码示例以及说明package com.item.kafka.consumer;...
2021-05-23 23:16:48
839
原创 Kafka入门(常见命令)
linux下1:启动Kafka./bin/kafka-server-start.sh -daemon config/server.properties #或者./kafka-server-start.sh ../config/server.properties1.1:查看状态jps 2:停止Kafka./bin/kafka-server-stop.sh 3:创建Topic./bin/kafka-topics.sh --create --zookeeper 172.16.0.11:
2021-05-23 22:41:13
138
原创 Kafka入门 发布到linux上
1.发布之前的注意首先确定zookeeper和kafka正在运行, 确定kafka的config文件夹下server.properties相关的配置是否配置完毕 注意pom.xml是否配置打包配置<!-- 打包发布--> <build> <plugins> <plugin> <groupId>org.springframework.boot</g
2021-05-23 18:06:17
121
原创 Kafka入门(常见错误)
1:Consider defining a bean of type 'org.apache.kafka.clients.producer.Producer' in your configuration.是因为没有配置Kafka基础配置,解决方式
2021-05-16 22:06:02
1228
原创 Kafka入门(三)Kafka 生产者 Producer
1基础1.1Producer发送模式◆同步发送(异步阻塞)◆异步发送◆异步回调发送1.2代码片段package com.item.kafka.producer;import org.apache.kafka.clients.producer.*;import java.util.Properties;import java.util.concurrent.ExecutionException;import java.util.concurrent.Future;.
2021-05-16 22:03:43
410
原创 Kafka入门(二)Kafka客户端操作 --AdminClient API
1基础首先了解一下KafkaApi类型,本次全是AdminClient API1.1Kafka客户端API类型◆AdminClient API:允许管理和检测Topic、broker以及其它Kafka对象◆Producer API:发布消息到1个或多个topic◆Consumer API:订阅- -个或多个topic,并处理产生的消息◆Streams API:高效地将输入流转换到输出流◆Connector API:从一些源系统或应用程序中拉取数据到kafka1.2Adm.
2021-05-16 16:36:28
1505
原创 Kafka入门(一)环境搭建
1环境搭建操作系统:Centos7需要安装的 一共三个:apache-zookeeper-3.5.7-bin.tar.gz、kafka_2.11-2.4.0.tgz、java jdk;1.1安装apache-zookeeper(注意关于zookeeper启动命令、查看安装命令需要在bin文件夹下才能运行)首先在Centos中解压,tar -zxvf apache-zookeeper-3.6.2-bin.tar.gz tar -zxvf 解压包然后进入config文件夹,可以看.
2021-05-13 23:10:57
1359
13
原创 SpringCloud 入门(六) Gateway
1基础1.1理论说明网关旨在为微服务架构提供- 种简单而有效的统-的API路由管理方式。●在微服务架构中,不同的微服务可以有不同的网络地址,各个微服务之间通过互相调用完成用户请求,客户端可能通过调用N个微服务的接口完成一个用户请求。 ●存在的问题: ●客户端多次请求不同的微服务,增加客户端的复杂性 ●认证复杂,每个服务都要进行认证 ●http请求不同服务次数增加, 性能不高使用Gateway之后,用户之和网关打交道,不和服务打交道。解...
2021-04-28 08:13:39
805
1
原创 SpringCloud 入门(五)Nacos
1基础它专注于服务发现和配置管理领域致力于帮助您发现、配置和管理微服务。Nacos 支持几乎所有主流类型的"服务”的发现、配置和管理。一句话概括就是Nacos = Spring Cloud注册中心+ Spring Cloud配置中心。首先去官网下载,建议使用首页推荐的版本;不建议选取最新版本。下载完成之后,单击nacos-server-1.4.1\nacos\bin 目录下startup.cmd此时会报错nacos Unable to start emb...
2021-04-22 08:19:08
422
原创 SpringCloud 入门(四) Feign声明式服务调用
1基础1.1Feign概述●Feign是一 个声明式的REST客户端,它用了基于接口的注解方式,很方便实现客户端配置。●Feign最初由Netlix公司提供,但不支持SpringMVC注解,后由SpringCloud对其封装,支持了SpringMVC注解,让使用者更易于接受。1.2Feign快速入门demo 目录结构1.2.1.在消费端(consumer)引入open-feign依赖consumer的pom添加依赖 <!-- 添加Feign..
2021-04-20 23:25:26
824
1
原创 SpringCloud 入门(三) Hystrix熔断器
1简介1.1.Hystrix概述 Hystix是Netflix开源的一个延迟和容错库,用于隔离访问远程服务、第三方库,防止出现级联失败(雪崩) 级联失败:c挂了之后,b不知道,一直请求。直到b的资源耗尽,b挂了。然后a重复刚刚b的操作。a也挂了=》雪崩: 一个服务失败,导致整条链路的服务都失败的情形。1.2.Hystix主要功能1.2.1.隔离1)原始情况:A有一百线程。C挂了,每次都有请求让A去调用C。因为C挂了每个线程都没有返回结果,每次A就用一个新的线...
2021-04-18 22:55:02
181
原创 SpringCloud 入门(二)Ribbon
1Ribbon简介1.1Ribbon概述◆Ribbon是客户端负载均衡器◆Ribbon核心功能:服务发现◆Ribbon核心功能:服务选择规则◆Ribbon核心功能:服务监听1.2Ribbon与Eureka整合◆Ribbon天然与Eureka无缝整合◆通过@LoadBalanced提供负载均衡支持◆通过ribbon.eureka.enabled =false禁用Eureka1.3配置负载均衡算法Ribbon核心之IRule◆IRule通过特定算法选取要访问的服...
2021-04-17 17:56:50
190
1
原创 常用工具类
1雪花算法生成idmysql的id一般为三种 Auto-increment(自增的主键id)、uuid、雪花算法生成id。 java雪花算法生成id网址 一般情况使用(自增的主键id)【缺点:自增长id只能保证一个数据库中的一张表的id唯一,】 高并发使用雪花id; uuid不推荐使用(太长、没法排序、使数据库性能降低)...
2021-04-12 18:59:46
110
1
原创 SpringCloud 入门(一)eureka
1初识Eureka在SpringColud中,Eureka作为注册中心使用。一般一个SpringCloud项目由多个子模块组成,作为项目最外的pom.xml作为父节点存放常用以及多模块使用的maven引用,使用依赖之间的版本必须对应上,不然会导致项目无法正常启动。1创建一个简单的Eureka项目父级pom文件代码<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.
2021-04-05 22:10:19
136
原创 2021-04-02开发软件安装
1mac国内网址下载homebrow/bin/zsh -c "$(curl -fsSL https://gitee.com/cunkai/HomebrewCN/raw/master/Homebrew.sh)"
2021-04-02 19:25:36
94
原创 工作常见问题-SpringBoot
1@Autowird与@Resource 区别@Autowird 属于spring框架,只使用类型(byType)进行注入,例如下面代码:@Autowired public IUserService userService public static void main(String[] args) { userService.selecAll(); }系统会根据IUserService接口进行注入,如果这个接口只有一个实现类,那么会正常注入,如果有多个实现类,
2021-03-29 14:35:35
90
原创 记录一些常用docker容器安装
1RabbitMQ1搜索docker search rabbitmq:management2拉取镜像docker pull rabbitmq:management3创建容器docker run -d --name rabbitmq -p 5672:5672 -p 15672:15672 docker.io/rabbitmq:management4访问RabbitMqhttp://127.0.0.1:15672/#/2安装mysql1...
2021-03-25 14:53:05
151
原创 idea中快捷键
for-mac1批量选中 control+command+G如图:先选中 */ 然后按control+command+G,这样就选中当前页面 所有的*/ 可以批量修改删除等=》适用场景 需要批量修改、删除的地方#拓展1Mac按键图例
2021-03-25 10:45:25
1176
1
原创 工作常见问题-数据库
1关于特殊字符串的模糊搜索 比如%_mysql中使用模糊搜索去查_或者%的字段时候,会将所有的数据(除了name is null)的数据会全部查出来。SELECT * FROM del WHERE name like '%_%'SELECT * FROM del WHERE name like '%%%' 但是我们想模糊搜索的只有带'%'或者'_', 一般这种情况下%、_前面都需要带转义符,mysql提供一个ESCAPE。首先举个例子SELECT * FROM del...
2021-03-25 10:27:03
94
原创 工作遇见问题-前端
1get 特殊字符串请求 当get 请求的url中 含有特殊字符串的时候,在前端传送给后台的过程中, 会将其删除。例如传【测试#测试】 在页面 Network=》Headers=》Query StringParameters 可以看到【测试测试】。一般如果只遇到一个特殊的字符 就只需要将其转化为十六进制就行 例如【测试%23测试】传入后台就是【测试#测试】。 如果一个字符还行,但是多个的话,就不推荐手写十六进制。前端可以使用encodeURIComponent() 将参数包裹,...
2021-03-24 19:18:37
165
原创 调试小技巧
1捕获输出try catch的error ,如果调试的时候,一般try catch捕捉的错误都会显示在控制台上。考虑到发布之后,通过日志形式记录,可以参考这种方法public static String getStackTrace(Exception e) { StringWriter writer = new StringWriter(); e.printStackTrace(new PrintWriter(writer,true)); return writer.toSt.
2021-03-11 10:16:20
82
原创 redis学习(五) 初步了解 redis-cluster
1基础注意redis-cluster集群=》windows版本 [redis3.2才有,2.8没有]低版本需要Ruby才能集群,高版本不需要;redis5.0.5不用ruby搭建集群。下载redis3.2(linux直接下载最高版本),参考文章2windows下集群2.0.1注意低版本需要配置ruby和redis-trib.rb文件Ruby:Ruby 程序设计语言官方网站 (ruby-lang.org)安装过程一直下一步2.0.2 下载 redis-trib...
2021-03-06 16:21:56
175
谷歌浏览器chorme示例源码 c#
2018-12-29
.net core api +codefirst+mysql
2018-12-05
.net mysql+ef+mvc
2018-11-19
automapper+autofac+mvc5+三层-ioc
2018-11-15
autofac+mvc5+三层-ioc
2018-11-14
.NET企业级应用架构设计
2018-07-31
asp_net_core2.1官方中文+英文原版手册
2018-06-25
Android编程权威指南 【第三版】
2018-06-06
sublime text 3 【绿色破解 内含破解密匙以及破解失败解决方法】
2018-04-29
构建之法【超清版】
2018-04-06
sublime2 【破解】 Tag
2018-03-21
C#开发Android应用实战 使用Mono for Android和.NET C# PDF扫描版+world版本
2018-01-31
ASP.NET MVC4架构实现与项目实战
2018-01-27
ASP.NET MVC 5框架揭秘 完整版 (蒋金楠) 高清pdf扫描版
2018-01-17
ASP.NETMVC5网站开发之美【高清PDF】
2018-01-09
.net 根据地址获取经纬度;根据经纬度获取地址
2018-01-08
Pro ASP.NET Core MVC 2【英文pdf+word文档】
2017-12-28
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人