自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

半糖少年

公众号 : 「Java半颗糖」 专注IT知识分享,期待你的关注,保证你收获满满。

  • 博客(411)
  • 资源 (6)
  • 论坛 (1)
  • 收藏
  • 关注

转载 【Golang】map 和 switch 如何选?match 又是什么?

看到标题别惊讶,虽然 map 和 switch 似乎没啥关系,但有些场景它们俩都可以用。

2021-11-28 16:11:26 4

转载 【PHP】Phalcon 请求的生命周期

真实世界中当我们了解了一件工具的运行原理后,我们将能够更好的使用它,程序也是一样。现在框架大多是基于 MVC 的架构,Phalcon 也不例外。下面来看下 Phalcon 是如何来处理一个请求的。

2021-10-30 18:59:34 13

转载 【工具技巧】PHP之Phalcon环境搭建

Phalcon7 框架, 一种崭新的 PHP 框架。我们的使命是给开发者一个开发 web 站点和应用的高级工具,让开发者不用担心框架的性能问题.

2021-10-30 10:23:27 16

原创 【Golang】golang 终端命令

go mod 包版本依赖管理

2021-10-04 01:08:08 19

转载 【最佳实践】当前疫情下火爆的直播应用,你了解背后的技术架构吗?

这场疫情让线下零售降至冰点,但是却带火了直播应用。直播电商、直播教育等各类直播应用可谓赢得了历史性的机会,很多大众开始接受并认可这种新型应用的便利和价值,个人感觉随着5G的普及,『直播+垂直领域+精细化的私域流量』将会是互联网的一个大热点,迎来真正的红利期。直播行业大概在10年多前就开始兴起了,秀场直播和游戏直播是PC时代比较成功的应用场景,直到16年,随着移动互联网的大规模普及,直播行业迎来了真正的元年,成百上千的直播APP出现在大众视野,大概在18年年初,直播答题当时火了一把,那算是直播类应用的第一

2021-07-24 14:55:27 6150

转载 【最佳实践】百度大规模Service Mesh落地实践

导读:百度过去基于rpc框架的服务治理存在各种框架能力参差不齐、业务自身服务治理效率低、全局可观测性不足等诸多问题。本文介绍了百度内部落地service mesh的实践过程,以基础稳定性能力治理和流量调度治理能力为业务落地点,详细阐述了内部落地的service mesh整体技术方案以及一系列关键技术,如性能的极致优化、扩展的高级策略、周边服务治理系统等。一、背景百度大部分产品线已完成微服务的改造, 数万个微服务对架构服务治理能力提出了更高的要求。传统的服务治理一般通过rpc框架去解决,多年以来百度内

2021-07-05 00:17:56 106

转载 【最佳实践】京东实时计算架构演进之路

一、背景:从 2004 年开始,京东进军互联网线上化开始到至今,随着京东的高速发展,京东商城的订单量从万级到百万级、最终到达亿级。而对于实时的数据需求也是层出不穷,实时计算架构随着数据量的增长,不断进行革新。二、京东实时计算架构演进之路2.1订单量万级、百万级(以京东海外站为例)在订单量万级、百万级别的时候,也存在不少实时的数据需求,比如:商家需要看看自己每天的成交量、老板需要看看整体的成交金额,以为后续的融资做准备。类似于现在很多的 a、b 轮创业公司数据体量。解决方案:而此时为了节.

2021-06-30 23:08:27 79 2

转载 【SpringBoot】Java优雅地实现接口数据校验

在工作中写过Java程序的朋友都知道,目前使用Java开发服务最主流的方式就是通过SpringMVC定义一个Controller层接口,并将接口请求或返回参数分别定义在一个Java实体类中,这样Spring MVC在接收到Http请求(POST/GET)后,就会自动将请求报文自动映射成一个Java对象。这样的代码通常是这样写的:@RestControllerpublic class CheckController { @PostMapping("/insert") public Resu

2021-06-19 12:30:03 62

转载 【MySQL】MySQL索引—B+树

索引是一种数据结构,用于帮助我们在大量数据中快速定位到我们想要查找的数据。索引最形象的比喻就是图书的目录了。注意这里的大量,数据量大了索引才显得有意义,如果我想要在 [1,2,3,4] 中找到 4 这个数据,直接对全数据检索也很快,没有必要费力气建索引再去查找。...

2021-06-14 23:13:27 45

转载 【最佳实践】携程服务注册中心架构演进

1.前言携程的微服务框架产品从2013年发展至今,已经历了7年多的打造。其中所使用的服务注册中心也从最开始人工数据维护架构演进到了现在全自动、百万容量级的架构。本文将逐一回顾携程服务注册中心所经历的三轮迭代过程,并重点介绍最新的第三版架构的设计与实现。...

2021-05-28 13:33:48 62

转载 【最佳实践】ClickHouse在携程酒店数仓的实践

一、背景随着时间推移和业务的快速发展,携程酒店数据累积越来越多。目前流量日数据在3T左右,再加上各种订单、价、量、态等数据更是庞大。现有Hive(Spark引擎)执行速度虽然相对较快,但在国际化发展背景下,一些海外业务由于时差问题,数据需要比国内提前数小时完成,性能提升迫在眉睫。2020年初,我们开始研究ClickHouse在数据仓库领域应用。本文将从技术方案选型、集成开发环境封装、ClickHouse代码优化技巧、异常问题处理、服务器故障处理五个方面分享ClickHouse实践,希望给关注同样问题

2021-05-27 23:01:17 52

转载 【ClickHouse】Clickhouse中update/delete的使用

从使用场景来说,Clickhouse是个分析型数据库。这种场景下,数据一般是不变的,因此Clickhouse对update、delete的支持是比较弱的,实际上并不支持标准的update、delete操作。下面介绍一下Clickhouse中update、delete的使用。1. 更新和删除的语法Clickhouse通过alter方式实现更新、删除,它把update、delete操作叫做mutation(突变)。语法为:ALTER TABLE [db.]table DELETE WHERE

2021-05-20 22:44:05 987

转载 【ClickHouse】clickhouse稀疏索引

MergeTree存储结构逻辑示意图MergeTree表的存储结构中,每个数据分区相互独立,逻辑上没有关联。单个数据分区内部存在着多个MergeTree Data Part。这些Data Part一旦生成就是Immutable的状态,Data Part的生成和销毁主要与写入和异步Merge有关。MergeTree表的写入链路是一个极端的batch load过程,Data Part不支持单条的append insert。每次batch insert都会生成一个新的MergeTree Data Pa

2021-05-20 08:43:52 557

转载 【最佳实践】携程ClickHouse日志分析实践

ElasticSearch是一种基于Lucene的分布式全文搜索引擎,携程用ES处理日志,目前服务器规模500+,日均日志接入量大约200TB。随着日志量不断增加,一些问题逐渐暴露出来:一方面ES服务器越来越多,投入的成本越来越高;另一方面用户的满意度不高,日志写入延迟、查询慢甚至查不出来的问题一直困扰着用户;而从运维人员的角度看,ES的运维成本较高,运维的压力越来越大。1.为什么选择ClickHouseClickHouse是一款高性能列式分布式数据库管理系统,我们对ClickHouse进行了测试,

2021-05-13 20:28:48 172

转载 【最佳实践】有赞crash平台符号化实践

背景有赞在基础保障平台的实践中完成了 Crash平台 的建设,但是iOS的崩溃日志未经符号化,排查问题比较困难。为了降低iOS App的crash率,快速排查线上crash,疑难crash的跟踪处理,符号化崩溃日志显得尤为重要!1. crash日志的收集与分析1.1如何收集crash日志手机上直接看,在隐私-分析与改进 -分析数据,可以找到所有崩溃日志,未符号化。 连接电脑,通过“音乐”同步到本地 ~/Library/Logs/CrashReporter/MobileDevice/xxx.

2021-05-13 00:07:38 78

原创 【Java基础知识】java调用并执行shell脚本

1. 背景我们在开发过程中,大部分是java开发, 而在文本处理过程中,主要就是脚本进行开发。脚本开发的特点就是在进行批处理的时候非常方便。 前阵子我遇到这么一个需求场景:有一些特殊文件需要特殊环境才能操作,而部署上线后必须要在Linux环境执行,所以一直用Java开始发为主的我们,强大的新势力(Go、Python)估计就很难施展,总不能重新用Go或者Python重新构建项目吧!所以我们需要借助Java的Process类调用shell脚本处理一些任务!2. 理论知识2.1直接Runtime.

2021-05-10 00:48:46 1293 12

转载 【SpringBoot】springboot 与 单元测试经验

1. 什么是单元测试单元测试(unit testing):是指对软件中的最小可测试单元进行检查和验证。这个定义有点抽象,这里举几个单元测试的特性,大家感受一下:一般是一个函数配几个单元测试、单元测试不应该依赖外部系统、单元测试运行速度很快、单元测试不应该造成测试环境的脏数据、单元测试可以重复运行。1.1 特点可重复执行 执行速度快 独立无依赖 结果不改变疑惑,到底需不需要写单元测试只要程序能运行就可以了,写单元测试浪费时间 代码很简单不需要单元测试 我保证不会有什么问题的

2021-04-28 00:29:22 60

原创 【工作技能】Json 数据处理常见问题梳理

问题和解决办法如下:1.fastjson 变量驼峰形式与下划线互转

2021-04-18 16:51:16 67

原创 【好用的工具】Git 使用常见问题整理

问题汇总如下:1. Idea git 提示Merging is not possible because you have unmerged files.使用下面三条命令即可:git mergegit resetgit pullgit reset 可以理解为重置,是变更HEAD指针位置,使其指向之前存在的版本,不过指针移动之后,目标版本之后的版本都会不存在了; git revert 可以理解为撤销操作,但是这次撤销之后的版本,git会把操作过的代码版本作为一个最新的版本进行管理..

2021-04-15 12:50:33 43

转载 【SpringBoot】springboot 与 Email 邮箱

学过计算机网络后,我们都知道,发送邮件就需要使用某种协议。比如什么SMTP、IMAP、POP3.1.基础知识什么是SMTP:SMTP全称为Simple Mail Transfer Protocol(简单邮件传输协议),它是一组用于从源地址到目的地址传输邮件的规范,通过它来控制邮件的中转方式。SMTP认证要求必须提供账号和密码才能登陆服务器,其设计目的在于避免用户受到垃圾邮件的侵扰。 什么是IMAP:IMAP全称为Internet Message Access Protocol(互联网邮件访问协议.

2021-04-14 23:59:29 86

转载 【网络编程】HTTP响应码大全

http响应状态码大全

2021-04-13 23:14:55 54

转载 【好用的工具】Hue 图形化操作数仓工具

Hue全称Hadoop User Experience,是一个开源的Apache Hadoop UI系统,由Cloudera Desktop演化而来,最后Cloudera公司将其贡献给Apache基金会的Hadoop社区,它是基于Python Web框架Django实现的。它的强大之处在于,界面非常友好简洁,通过使用它我们可以直接在浏览器端的Web控制台上与Hadoop集群进行交互来分析处理数据。

2021-04-11 23:30:08 198

转载 【kafka】kafka开发常见问题汇总

采坑及解决办法:1.kafka 问题 (localhost/127.0.0.1:9092) could not be established. Broker may not be availab

2021-04-10 16:00:10 88

原创 【好用的工具】基于win10的bat脚本编写指南

1. 基本语法# bat 脚本语法pause # 会暂停批处理的执行并在屏幕上显示Press any key to continue...的提示,等待用户按任意键后继续2. 常见问题2.1电脑如何设置在bat执行完后不关闭窗口3. 实战案例...

2021-04-10 01:24:55 790

转载 【kafka】Kafka 快速入门

1. kafka简介Kafka 是由Linkedin公司开发的,它是一个分布式的,支持多分区、多副本,基于 Zookeeper 的分布式消息流平台,它同时也是一款开源的基于发布订阅模式的消息引擎系统。kafka官网:http://kafka.apache.org/ kafka下载页面:http://kafka.apache.org/downloads kafka配置快速入门:http://kafka.apache.org/quickstart...

2021-04-10 01:17:01 86

原创 【Apollo】Apollo 开发常见问题汇总

1. apollo 无法获取到配置:Could not complete get operation [Cause: java.lang.IllegalStateException: Expected BEGIN_ARRAY but was STRING at line 1 column 1 path解决办法:

2021-04-05 16:48:51 499 1

原创 【Apollo】Apollo 使用指南

Apollo(阿波罗)是携程框架部门研发的分布式配置中心,能够集中化管理应用不同环境、不同集群的配置,配置修改后能够实时推送到应用端,并且具备规范的权限、流程治理等特性,适用于微服务配置管理场景。

2021-04-05 12:24:11 232

原创 【MyBatis】mybatis-generator 自动生成代码

1.mybatis-generator 是什么?2. 为什么要使用mybatis-generator?官网文档:http://mybatis.org/generator/index.html3. 如何使用mybatis-generator?4. 使用过程中遇到的问题

2021-04-04 22:28:42 27

原创 【SpringBoot】SpringBoot 项目相关问题快速定位

汇总如下(持续更新):SpringBoot 配置 application.yml文件没有生效

2021-04-03 01:13:39 86

转载 【GoLang】有必要刻意转go吗?

在当今最流行的编程语言列表里,Go语言一直是名列前茅。近几年Go语言在互联网圈很火,国外如Google、facebook、AWS等暂且不谈,国内如阿里巴巴、腾讯、百度、抖音、小米、京东、360、网易、新浪、爱奇艺、哔哩哔哩等都已开始大规模使用Go语言开发各种应用。身边好多研发同学都在疑惑,自己是不是需要转Go呢?1. go 语言的优势 强悍并发性能(Go内置Goroutine协程调度机制,处理并发性相当强悍); 开发速度快(这个奇特的语言代码简易度接近Python,运行速度媲美C语言

2021-03-18 09:22:24 199

转载 【实践案例】分库分表扩容如何实现平滑数据迁移?

1. 问题背景2020年,笔者负责的一个高德打车弹外订单系统进行了一次扩分库分表和数据库迁移。该订单系统整体部署在阿里云上,服务使用阿里云ECS部署,数据库采用阿里云RDS,配置中心基于阿里云ACM自研,数据同步基于阿里云DTS自研以及自研分库分表组件、分布式ID组件等等。此次进行扩分库分表的背景是,原4实例4库、每个库64张表一共256张表,部分单表已超千万量级,按当前每日单量量级,一年内单表会达到上亿条记录,单表数据量过大会带来数据库性能问题。【弹内弹外】弹是指弹性计算,弹内与弹外其实是指

2021-03-17 13:44:21 175

转载 【GoLong】使用 go mod 管理Go项目依赖

1. 前言go modules是 golang 1.11 新加的特性。现在1.12 已经发布了,是时候用起来了。Modules官方定义为:模块是相关Go包的集合。modules是源代码交换和版本控制的单元。 go命令直接支持使用modules,包括记录和解析对其他模块的依赖性。modules替换旧的基于GOPATH的方法来指定在给定构建中使用哪些源文件。2. 开启go modules 模式把 golang 升级至少到 1.11版本以上 设置GO111MODULE 2.1...

2021-03-16 11:31:06 245

转载 【实践案例】复杂环境下落地Service Mesh的挑战与实践

OCTO是美团内部的服务治理平台,包含服务通信框架、命名服务、服务数据中心和用户管理平台等组件,为公司内全部服务提供了整套的服务治理方案和统一的服务治理体验。我们在之前的几篇文章中分别从不同的角度介绍了OCTO平台的建设情况。包括:《美团命名服务的挑战与演进》介绍了美团命名服务(MNS)从1.0到2.0演进的初衷、实现方案以及落地的效果,并介绍了命名服务作为一个技术中台组件,对业务的重要价值以及推动业务升级的一些成果。 《美团OCTO万亿级数据中心计算引擎技术解析》介绍了美团自研的 OCTO数据中心计

2021-03-13 08:53:45 96 1

转载 【架构设计】服务治理理论(一)

1. 前言微服务架构下,会引入很多服务问题,所以少不了需要做服务治理,包括:服务注册与发现、服务配置、服务限流、服务熔断、服务降级、负载均衡、链路追踪等。关于服务治理的范畴应该包括哪些,业界其实也没有形成标准,但至少包括了前面列出来的内容,这是毋庸置疑的。另外,微服务架构下,服务集群规模会越来越大,服务治理也很难靠人工完成,因此,微服务治理的自动化程序要高。下面,我们就根据上面列举的内容,一一讲解每一块的服务治理如何实践。2. 服务注册与发现在第一篇文章最后我们也有讲到注册中心,从 CA

2021-03-11 11:17:15 135

转载 【深入理解JVM】Java内存模型理论

Java并发是一个很大的主题,包含很多方面的知识。本文从内存模型的角度分析,从概念理论上尽量精确理解Java内存模型,及其对并发的影响。1. 前言在计算机技术领域。从冯·诺依曼提出计算机的五大组成部分开始,后来进一步抽象到主要由CPU、内存和I/O组成运转的体系,一直存在的问题就是速度差异巨大且一直存在,表现为 CPU 的速度 > 内存的速度 > I/O 设备的速度。为了充分开发利用计算机的潜能,体系结构、操作系统、编译程序等都做出了改变,比如CPU多核、流水线技术、进程线程概念、数据库

2021-03-11 09:01:09 73

原创 【云原生技术】从零搭建K8S集群环境(二)

1. 搭建K8S集群前置知识1.1 搭建K8S集群环境平台规划(1)单master集群单个master节点,然后管理多个node节点 (2)多master集群节点多个master节点,管理多个node节点,同时中间多了一个负载均衡的过程 1.2 服务器硬件配置要求(1)测试环境master:2核 4G 20G node: 4核 8G 40G(2)生产环境master:8核 16G 100G node: 16核 64G 200G目前生产部署K...

2021-03-10 23:47:03 82

转载 【好用的工具】VMware Workstation 虚拟机

常见问题答疑 VMware Workstation Pro 不兼容win10 无法在Windows上运行 快速访问

2021-03-10 23:33:09 48

转载 【MySQL】MySQL show 命令说明

命令说明:show tables或show tables from database_name或show database_name.tables;解释:显示当前数据库中所有表的名称show databases;解释:显示mysql中所有数据库的名称show processlist;解释:显示系统中正在运行的所有进程,也就是当前正在执行的查询。大多数用户可以查看他们自己的进程,但是如果他们拥有process权限,就可以查看所有人的进程,包括密码。show table status;

2021-03-10 16:56:19 64

原创 【架构演进】​XX系统架构演进的思考(一)

任何架构的演进都是由场景驱动的,离开场景谈架构就是耍流氓。因此,做架构设计之前,我们要先了解当下的场景。场景就是需求,一般可以将需求分为三类:商业需求、功能需求和质量需

2021-03-09 16:53:54 112 3

转载 【设计模式】Mybatis 中9种经典的设计模式

虽然我们都知道有23个设计模式,但是大多停留在概念层面,真实开发中很少遇到。Mybatis源码中使用了大量的设计模式,阅读源码并观察设计模式在其中的应用,能够更深入的理解设计模式。Mybatis至少遇到了以下的设计模式的使用:Builder模式,例如SqlSessionFactoryBuilder、XMLConfigBuilder、XMLMapperBuilder、XMLStatementBuilder、CacheBuilder; 工厂模式,例如SqlSessionFactory、ObjectFa

2021-03-09 16:13:53 41

rocketmq_broker.conf

RocketMQ 配置文件:(下面是默认配置) brokerClusterName = DefaultCluster brokerName = broker-a brokerId = 0 deleteWhen = 04 fileReservedTime = 48 brokerRole = ASYNC_MASTER flushDiskType = ASYNC_FLUSH

2020-12-04

java进程高CPU占用故障排查.txt

java进程高CPU占用故障排查

2021-01-27

Redis面试专题及答案(下).pdf

Redis面试专题及答案,主要是网上找的资源,如有侵权,速联系会马上删除!

2019-10-09

redis面试题及答案(上).pdf

redis面试题总结学习,Redis是开源的(BSD许可)内存数据结构存储,用作数据库,缓存和消息代理。它支持数据结构,例如 字符串,哈希,列表,集合,带范围查询的排序集合,位图,超日志,带有半径查询的流空间索引和流。Redis具有内置的复制,Lua脚本,LRU逐出,事务和不同级别的磁盘持久性,并通过以下方式提供高可用性Redis Sentinel和Redis Cluster自动分区。

2019-10-09

zoo.cfg——ZooKeeper 单机环境配置(win)

windows版本 zookeeper配置说明,修改路径后可直接使用

2020-12-29

redis主存复制数据同步过程日志

通过redis主存复制(一主两从) 数据同步过程日志,分析Redis主从复制的工作原理,Redis允许同时开启AOF和RDB,既保证了数据安全又使得进行备份等操作十分容易。此时重新启动Redis后Redis会使用AOF文件来恢复数据,因为AOF方式的持久化可能丢失的数据更少。

2020-12-02

软件工程专业适不适合考研

发表于 2019-01-26 最后回复 2019-01-28

空空如也

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

TA关注的人 TA的粉丝

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