首页 文章 精选 留言 我的

精选列表

搜索[阿里达摩院Paraformer],共10000篇文章
优秀的个人博客,低调大师

阿里云安装Fabric环境

最近在做项目,底层用到超级账本Hyperledger Fabric。之前没有接触过这一块,就重头开始研究学习。有很多知识点都是在网上查到的然后就一 一尝试,把遇到坑总结下来。方便后面查看。 Hyperledger Fabric中文帮助文档地址[link] (https://hyperledgercn.github.io/hyperledgerDocs/blockchain_zh/) Hyperledger Fabric是一个由模块化架构支撑的分布式账本解决方案平台,提供高度的保密性、弹性、灵活性和伸缩性。它被设计支持不同组件的插拔,并且适应经济生态系统的复杂性。 Hyperledger Fabric运行环境需要安装Go语言环境,Docker环境,Docker-Compose环境,下面就介绍下这些环境的安装步骤 1. Go环境安装步骤 1.1 下载源码包 wget https://storage.googleapis.com/golang/go1.10.linux-amd64.tar.gz 1.2安装解压源码包 tar -C /usr/local -xzf go1.10.linux-amd64.tar.gz 1.3创建工作目录mkdir -p GOPATH goProject. 1.4设置环境变量,使用vim打开,点击i进行文件修改vim /etc/profileexport PATH=$PATH:/usr/local/go/bin 1.5添加工作目录,可以添加多个工作目录,用:分隔export GOPATH=/usr/local/GOPATH:/usr/local/goProject 1.6按esc之后:wq保存并退出source /etc/profile 1.7查看版本命令,出现正确的版本信息就说明安装成功 go version 2.Docker环境安装步骤 2.1 检查linux版本命令如下 $ uname -r 3.10.0-229.el7.x86_64 2.2升级yum安装包,确保都是最新的版本 $ sudo yum update 2.3添加 yum 软件源 sudo tee /etc/yum.repos.d/docker.repo <<-'EOF' [dockerrepo] name=Docker Repository baseurl=https://yum.dockerproject.org/repo/main/centos/$releasever/ enabled=1 gpgcheck=1 gpgkey=https://yum.dockerproject.org/gpg EOF 2.4安装 docker-engine yum install -y docker-engine 2.5配置让 Docker 服务在系统启动后自动启动。 CentOS 7中支持的新式 systemd 语法,如下: systemctl start docker.service systemctl enable docker.service 2.6Docker安装完成,查看docker版本详细信息命令 $docker version 2.7Docker启动/重启/停止等命令 添加docker开机启动:systemctl enable docker 启动命令:systemctl start docker 重启命令:systemctl restart docker 停止命令:systemctl stop docker 查看版本:docker version 卸载:yum remove docker-ce 查看窗口端口映射:docker ps 查看所以容器(包括被关闭的):docker ps --all 3.Docker-Compose安装步骤 3.1安装python-pip包 yum install python-pip.noarch 对安装好的pip进行一次升级 sudo pip install --upgrade pip 3.2,使用pip安装docker-compose pip install docker-compose 3.3查看版本信息docker-compose version Docker官方文档地址[link] (https://docs.docker.com/install/linux/docker-ce/centos/#set-up-the-repository) 4.fabric安装 4.1在GitHub上拉代码到指定目录下mkdir -p ~/go/src/github.com/hyperledger cd ~/go/src/github.com/hyperledger git clone https://github.com/hyperledger/fabric.git 4.2跳转到目录下选择想要的版本,目前最新的版本1.3.0,这里选择1.1.0版本 cd ~/go/src/github.com/hyperledger/fabricgit checkout v1.1.0 4.2切换到e2e_cli目录下,下载fabric镜像文件(x86_64-1.0.0版本可选1.1.0)cd ~/go/src/github.com/hyperledger/fabric/examples/e2e_cli/source download-dockerimages.sh -c x86_64-1.1.0 -f x86_64-1.1.0 查看所有镜像命令 docker images 4.3镜像下载完了之后 在e2e_cli目录下执行命令启动fabric网络:./network_setup.sh up 如果没有出现错误的话会出现end-e2e等大字. Docker常用命令杀死所有正在运行的容器docker kill $(docker ps -a -q) 删除所有已经停止的容器docker rm $(docker ps -a -q) 删除所有镜像docker rmi $(docker images -q) 强制删除所有镜像docker rmi -f $(docker images -q) 例子:docker rmi -f c3e613e95daa 查看节点通道命令:peer channel list

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

阿里JAVA 开发手册----整理

1、命名严禁使用拼音与英文混合的方式。 2、领域模型命名规约 1) 数据对象: xxxDO, xxx 即为数据表名。 2) 数据传输对象: xxxDTO, xxx 为业务领域相关的名称。 3) 展示对象: xxxVO, xxx 一般为网页名称。 4) POJO 是 DO/DTO/BO/VO 的统称,禁止命名成 xxxPOJO。 3、long 或者 Long 初始赋值时,必须使用大写的 L,小写容易跟数字 1 混淆,造成误解。 4、避免通过一个类的对象引用访问此类的静态变量或静态方法,无谓增加编译器解析成 本,直接用类名来访问即可。 5、说明: 可变参数必须放置在参数列表的最后。(提倡同学们尽量不用可变参数编程) 正例: public User getUsers(String type, Integer... ids);(可为null的参数放最后) 6、Object 的 equals 方法容易抛空指针异常,应使用常量或确定有值的对象来调用 equals。 正例: "test".equals(object); 7、所有的相同类型的包装类对象之间值的比较,全部使用 equals 方法比较。 说明: 对于 Integer var=?在-128 至 127 之间的赋值, Integer 对象是在 IntegerCache.cache 产生,会复用已有对象,这个区间内的 Integer 值可以直接使用==进行判断,但是这个区间之 外的所有数据,都会在堆上产生,并不会复用已有对象,这是一个大坑,推荐使用 equals 方 法进行判断。 8、注意 serialVersionUID 不一致会抛出序列化运行时异常。 9、关于基本数据类型与包装数据类型的使用标准如下: 1) 所有的 POJO 类属性必须使用包装数据类型。 2) RPC 方法的返回值和参数必须使用包装数据类型。 3) 所有的局部变量推荐使用基本数据类型。 10、final 可提高程序响应效率,声明成 final 的情况: 1) 不需要重新赋值的变量,包括类属性、局部变量。 2) 对象参数前加 final,表示不允许修改引用的指向。 3) 类方法确定不允许被重写。 11、对象的 clone 方法默认是浅拷贝,若想实现深拷贝需要重写 clone 方法实现属性对象的 拷贝。 12、Map/Set 的 key 为自定义对象时,必须重写 hashCode 和 equals。 正例: String 重写了 hashCode 和 equals 方法,所以我们可以非常愉快地使用 String 对象作 为 key 来使用。 13、ArrayList 的 subList 结果不可强转成 ArrayList,否则会抛出 ClassCastException 异常: java.util.RandomAccessSubList cannot be cast to java.util.ArrayList ; 说明: subList 返回的是 ArrayList 的内部类 SubList,并不是 ArrayList ,而是 ArrayList 的一个视图,对于 SubList 子列表的所有操作最终会反映到原列表上。 14、List<String> list = new ArrayList<String>(2); list.add("guan"); list.add("bao"); String[] array = new String[list.size()]; array = list.toArray(array); 说明: 使用 toArray 带参方法,入参分配的数组空间不够大时, toArray 方法内部将重新分配 内存空间,并返回新数组地址;如果数组元素大于实际所需,下标为[ list.size() ]的数组 元素将被置为 null,其它数组元素保持原值。 15、使用工具类 Arrays.asList()把数组转换成集合时,不能使用其修改集合相关的方法, 它的 add/remove/clear 方法会抛出 UnsupportedOperationException 异常。 说明: asList 的返回对象是一个 Arrays 内部类,并没有实现集合的修改方法。 Arrays.asList 体现的是适配器模式,只是转换接口,后台的数据仍是数组。 String[] str = new String[] { "a", "b" }; List list = Arrays.asList(str); 第一种情况: list.add("c"); 运行时异常。 第二种情况: str[0]= "gujin"; 那么 list.get(0)也会随之修改。 16、不要在 foreach 循环里进行元素的 remove/add 操作(会抛出ConcurrentModificationException)。 remove 元素请使用 Iterator 方式,如果并发操作,需要对 Iterator 对象加锁。 17、Map集合:values()返回的是 V 值集合,是一个 list 集合对象; keySet()返回的是 K 值集合,是 一个 Set 集合对象; entrySet()返回的是 K-V 值组合集合。 18、高并发时,同步调用应该去考量锁的性能损耗。能用无锁数据结构,就不要用锁;能 锁区块,就不要锁整个方法体;能用对象锁,就不要用类锁。 19、线程池不允许使用 Executors 去创建,而是通过 ThreadPoolExecutor 的方式,这样 的处理方式让写的同学更加明确线程池的运行规则,规避资源耗尽的风险。 说明: Executors 各个方法的弊端: 1) newFixedThreadPool 和 newSingleThreadExecutor: 主要问题是堆积的请求处理队列可能会耗费非常大的内存,甚至 OOM。 2) newCachedThreadPool 和 newScheduledThreadPool: 主要问题是线程数最大数是 Integer.MAX_VALUE,可能会创建数量非常多的线程,甚至 OOM。 20、注意,子线程抛出异常堆栈,不能在主线程 try-catch 到。 21、注意 Math.random() 这个方法返回是 double 类型,注意取值范围 0≤x<1(能够取 到零值,注意除零异常)。 22、单表行数超过 500 万行或者单表容量超过 2GB,才推荐进行分库分表。 23、where a=? and b>? 多个查询条件,区分度高的在前,有=的在前。 24、禁止使用存储过程,存储过程难以调试和扩展,更没有移植性(隐藏在DB中,不直观难维护)。 25、删除和修改记录时,要先 select,避免出现误删除,确认无误才能 提交执行。 26、in 操作能避免则避免,若实在避免不了,需要仔细评估 in 后边的集合元素数量,控 制在 1000 个之内。 27、<isNotEmpty>表示不为空且不为 null 时执行; <isNotNull>表示不为 null 值时执行。 28、mysql类型DECIMAL 实际是以串存放的。尽量用DECIMAL取代float和double。 --分为Java语言部分、集合框架、Java线程与并发、数据库。 https://yq.aliyun.com/articles/240163?spm=5176.10695662.1996646101.searchclickresult.7b4515c54fNXir

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

阿里云不能启动docker

报错内容如下 Get http:///var/run/docker.sock/v1.18/images/json: dial unix /var/run/docker.sock: no such file or directory. Are you trying to connect to a TLS-enabled daemon without TLS? 解决办法 route del -net 172.16.0.0 netmask 255.240.0.0 或者 一般会在 /etc/sysconfig/docker 编辑这个文件 vi/etc/sysconfig/docker 修改other_args=这一行为:other_args=-bip=192.168.100.1/24 保存退出 本文转自wangfeng7399 51CTO博客,原文链接:http://blog.51cto.com/wangfeng7399/1685349,如需转载请自行联系原作者

资源下载

更多资源
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应用均可从中受益。

Sublime Text

Sublime Text

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

WebStorm

WebStorm

WebStorm 是jetbrains公司旗下一款JavaScript 开发工具。目前已经被广大中国JS开发者誉为“Web前端开发神器”、“最强大的HTML5编辑器”、“最智能的JavaScript IDE”等。与IntelliJ IDEA同源,继承了IntelliJ IDEA强大的JS部分的功能。

用户登录
用户注册