首页 文章 精选 留言 我的

精选列表

搜索[基础搭建],共10000篇文章
优秀的个人博客,低调大师

Scala学习笔记(1)-环境搭建

Scala是一种多范式的编程语言,设计初衷是要集成面向对象编程和函数式编程的各种特性。scala可以和java程序无缝拼接,因为scala文件编译后也是成为.class文件,并且在JVM上运行,有下下一代Java之称,当然要有Java今天的阵势还有很长很长的一段路要走。 Scala的几个主要特性 1.面向风格:Scala中的每个值都是一个对象,包括基本数据类型(java中基本类型不是对象)在内,连函数也是对象。 2.函数式风格:高阶函数(Higher-Order Function)、局部套用(Currying)、嵌套函数(Nested Function)、序列解读(Sequence Comprehensions)等等。 3.Scala是静态类型的,这就允许它提供泛型类、内部类、甚至多态方法(Polymorphic Method) 4.Scala可以与Java互操作:它用scalac这个编译器把源文件编译成Java的class文件(即在JVM上运行的字节码)。你可以从Scala中调用所有的Java类库,也同样可以从Java应用程序中调用Scala的代码。它也可以访问现存的数之不尽的Java类库,这让(潜在地)迁移到Scala更加容易。 1.安装Scala,这个不用多说 Scala目前最新的版本为2.11.8,下载地址http://www.scala-lang.org/,我下载的.msi文件,直接安装完毕自动添加了path 2.安装IDE (1)直接下载ScalaIDE,安装完后就可以直接使用。 (2)已安装有Eclipse的,可以安装scala支持插件,支持的eclipse版本是3.8-4.3(Juno and Kepler) 插件地址 http://download.scala-ide.org/sdk/helium/e38/scala211/stable/site 其他版本:http://scala-ide.org/download/prev-stable.html 3.写一段代码测试一下 package com.demo object Demo {//注意这里是object 不是 class 喔,两者区别后面会讲到。 def main(args: Array[String]): Unit = { println("hello scala!") println("hello world!");//分号可选要不要 } } 本文来自云栖社区合作伙伴“开源中国” 本文作者:山海经 原文链接

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

Docker搭建nexus3私服

虚拟机地址(安装docker server的机器):192.168.31.109镜像版本:sonatype/nexus3:3.17.0 1、编辑docker-compose.yml [root@kafka1 nexus3]# cat docker-compose.yml version: '3.1' services: nexus3: image: sonatype/nexus3:3.17.0 container_name: nexus3 # network_mode: host ports: - 8081:8081 - 8088:8088 - 8087:8087 - 8086:8086 volumes: - /root/nexus3/nexus-data:/nexus-data restart: always cap_add: - ALL 2、关闭selinux和修改/root/nexus3/nexus-data (备注:我自己的nexus的目录,映射到容器做文件存储,修改为自己的) 关闭selinux不关闭selinux,无法启动,会报没有权限,类似jvm.log无法创建,或者.pid无法创建 将 SELINUX=enforcing 改为 SELINUX=disabled [root@kafka1 nexus3]# cat /etc/sysconfig/selinux # This file controls the state of SELinux on the system. # SELINUX= can take one of these three values: # enforcing - SELinux security policy is enforced. # permissive - SELinux prints warnings instead of enforcing. # disabled - No SELinux policy is loaded. #SELINUX=enforcing SELINUX=disabled # SELINUXTYPE= can take one of three two values: # targeted - Targeted processes are protected, # minimum - Modification of targeted policy. Only selected processes are protected. # mls - Multi Level Security protection. SELINUXTYPE=targeted 修改权限 chmod -R 777 ./nexus-data 3、启动nexus3 docker-compose -f ./docker-compose.yml up -d 4、访问nexus3 地址:http://ip:8081 如:http://192.168.31.109:8081点击右上角的sign in进行登录。账户admin,密码:默认密码在文件 /nexus-data/admin.password 中,登录进入 5、创建仓库 docker的仓库类型有三种 hosted : 本地存储,即同docker官方仓库一样提供本地私服功能 proxy : 提供代理其他仓库的类型,如docker中央仓库 group : 组类型,实质作用是组合多个仓库为一个地址 创建hosted仓库 创建proxy仓库,代理docker hub 创建group仓库,聚合hosted和proxy仓库,实现的效果就是先拉本地仓库,在拉远程仓库 6、设置docker从本地拉取镜像 vi /etc/docker/daemon.json [root@kafka1 nexus3]# cat /etc/docker/daemon.json { "insecure-registries": [ "192.168.31.109:8088", "192.168.31.109:8087", "192.168.31.109:8086" ] } 使用docker info查看 7、打tag进行镜像上传 注:只有hosted的仓库才能上传将本地从docker hub拉取的mysql镜像,重启打tag 格式ip:hosted port/xxx docker tag mysql:8.0.16 192.168.31.109:8088/mysql:8.0.16 docker login 192.168.31.109:8088 #输入账户、密码,如使用admin的账户,admin/admin123(第一次登陆后修改为了此密码) 8、上传镜像 docker push 192.168.31.109:8088/mysql:8.0.16 9、查看nexus3的镜像,如下图 10、删除本地镜像重新从私服拉取镜像 docker image rmi 192.168.31.109:8088/mysql:8.0.16 11、删除本地镜像 12、未解决的问题 由于本地仓库只有hosted的keypush镜像,端口为8088,聚合仓库可以先拉取本地仓库,在本地仓库没有的情况去远程仓库拉取,端口为8086所以在push/pull需要区分端口进行操作,略显麻烦,可以使用nginx进行反向代理进行统一,待完善

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

kubernetes 搭建单节点mysql服务

参考链接:https://kubernetes.io/docs/tasks/run-application/run-single-instance-stateful-application/ 一、创建service apiVersion: v1 kind: Service metadata: name: mysql labels: app: mysql namespace: admin-d2069c spec: ports: - name: mysql port: 3306 clusterIP: None selector: app: mysql 二、创建StatefulSet apiVersion: apps/v1beta1 kind: StatefulSet metadata: name: mysql namespace: admin-d2069c spec: serviceName: mysql replicas: 1 selector: matchLabels: app: mysql template: metadata: labels: app: mysql namespace: admin-d2069c spec: containers: - name: mysql image: mysql:5.7 env: - name: MYSQL_ROOT_PASSWORD value: "123" ports: - name: mysql containerPort: 3306 volumeMounts: - name: lihaile mountPath: /var/lib/mysql subPath: mysql - name: conf mountPath: /etc/mysql/conf.d resources: requests: cpu: 300m memory: 200M livenessProbe: exec: command: ["mysqladmin", "-h", "127.0.0.1", "-uroot", "-p123", "ping"] initialDelaySeconds: 30 periodSeconds: 10 timeoutSeconds: 5 readinessProbe: exec: # Check we can execute queries over TCP (skip-networking is off). command: ["mysql", "-h", "127.0.0.1", "-uroot", "-p123", "-e", "SELECT 1"] initialDelaySeconds: 5 periodSeconds: 2 timeoutSeconds: 1 volumes: - name: conf emptyDir: {} - name: config-map configMap: name: mysql volumeClaimTemplates: - metadata: name: lihaile annotations: volume.beta.kubernetes.io/storage-class: "managed-nfs-storage" namespace: admin-d2069c spec: accessModes: ["ReadWriteOnce"] resources: requests: storage: 2Gi 三、创建访问Service apiVersion: v1 kind: Service metadata: name: mysql-access labels: app: mysql namespace: admin-d2069c spec: ports: - name: mysql port: 3306 selector: app: mysql 查看Mysql root@node4:~# kubectl -n admin-d2069c get pvc,pv,statefulset,pod,service |grep mysql pvc/storage-mysql-0 Bound pvc-a6c63604-c2ee-11e8-b599-0050568eef9f 512M RWX managed-nfs-storage 18s pv/pvc-a6c63604-c2ee-11e8-b599-0050568eef9f 512M RWX Delete Bound admin-d2069c/storage-mysql-0 managed-nfs-storage 18s statefulsets/mysql 1 1 18s po/mysql-0 1/1 Running 0 18s svc/mysql ClusterIP None <none> 3306/TCP 18s svc/mysql-access ClusterIP 10.68.31.80 <none> 3306/TCP 18s ing/mysql-access jekens.com 80 18s 五、测试 1、查看集群详情和状态 root@node4:~# mysql -h 10.68.31.80 -p123 mysql: [Warning] Using a password on the command line interface can be insecure. Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 124 Server version: 5.7.23 MySQL Community Server (GPL) Copyright (c) 2000, 2018, Oracle and/or its affiliates. All rights reserved. Oracle is a registered trademark of Oracle Corporation and/or its affiliates. Other names may be trademarks of their respective owners. Type 'help;' or '\h' for help. Type '\c' to clear the current input statement. mysql> show databases; +--------------------+ | Database | +--------------------+ | information_schema | | mysql | | performance_schema | | sys | +--------------------+ 4 rows in set (0.00 sec) mysql>

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

go-ethereum源码搭建环境

阅读源码对深入理解以太坊和区块链的原理是非常有用的,通过阅读源码可以知道交易、区块等核心数据结构的组成,可以对区块链的底层实现原理和运行过程有一个更清晰的认识,很多不明确的问题都可以从源码中找到答案。 网上以太坊的技术资料很多,但多数是关于智能合约和应用开发的,真正涉及底层实现和源码的很少。本文介绍以太坊go-ethereum源码的阅读环境配置,之后会陆续介绍一些源码阅读心得体会。以太坊有8种语言的实现,选择go-ethereum是因为它是以太坊的官方实现版本,包含了以太坊的所有特性,比较权威和全面,它是用go语言编写的,go语言学习起来比较容易,而且可读性也比较好。 阅读源码有一个代码编辑器就够了,但是为了更好的体验和更高的效率,还需要做一些配置,比如代码高亮、代码跳转等。 安装go语言 为了能支持代码跳转,需要安装go语言,安装教程参考这篇文章,其中最重要的是要保证正确设置了GOPATH,这样才能进行代码跳转。如果想学习go语言,可以看一下在线教程A Tour of Go,或者去看《The Go Programming Language》这本书。 配置编辑器 看代码可以选择你喜欢的代码编辑器,我用的是Visual Studio Code,为了支持go语言代码高亮,需要安装一个插件。在vscode的插件面板中搜索lukehoban,安装即可。 接下来安装一些go语言工具(有些需要翻墙),在命令行中执行以下命令安装: go get -u -v github.com/nsf/gocode go get -u -v github.com/rogpeppe/godef go get -u -v github.com/zmb3/gogetdoc go get -u -v github.com/golang/lint/golint go get -u -v github.com/lukehoban/go-outline go get -u -v sourcegraph.com/sqs/goreturns go get -u -v golang.org/x/tools/cmd/gorename go get -u -v github.com/tpng/gopkgs go get -u -v github.com/acroca/go-symbols go get -u -v golang.org/x/tools/cmd/guru go get -u -v github.com/cweill/gotests/... go get -u -v golang.org/x/tools/cmd/godoc go get -u -v github.com/fatih/gomodifytags 下载源码 以太坊代码都托管在github上,它的代码经常更新,每次更新会加入一些新的东西,也可能改变代码的组织架构,所以最好选择一个稳定版阅读,这里以1.5.9版本为例。 首先在GOPATH/src下创建github.com/ethereum目录: $ mkdir -p $GOPATH/src/github.com/ethereum 然后进入上面创建的目录,下载go-ethereum项目源码: $ cd $GOPATH/src/github.com/ethereum $ git clone https://github.com/ethereum/go-ethereum.git $ cd go-ethereum $ git checkout v1.5.9 上面通过git clone下载源码,然后通过git checkout检出指定版本的代码,如果想使用其他版本,在git checkout中指定相应的版本号即可。 下载完成后目录结构应该是这样的: GOPATH/src ├── github.com └── ethereum └── go-ethereum 路径和目录名一定要与上面的一致,不能放到其他地方或者改成其他名字,因为go语言是按照路径搜索包的。 其实上面最重要的就是要正确设置了GOPATH,并且要把源码放到GOPATH/src中正确的路径中。接下来就可以开始阅读代码了。 如果对以太坊开发有兴趣,推荐两个教程: 1.适合区块链新手的以太坊DApp开发: http://xc.hubwiz.com/course/5a952991adb3847553d205d1 2.用区块链、星际文件系统(IPFS)、Node.js和MongoDB来构建以太坊DApp电商平台: http://xc.hubwiz.com/course/5abbb7acc02e6b6a59171dd6 如果想加入以太坊技术开发群可以加微信拉你入群。

资源下载

更多资源
Mario

Mario

马里奥是站在游戏界顶峰的超人气多面角色。马里奥靠吃蘑菇成长,特征是大鼻子、头戴帽子、身穿背带裤,还留着胡子。与他的双胞胎兄弟路易基一起,长年担任任天堂的招牌角色。

Nacos

Nacos

Nacos /nɑ:kəʊs/ 是 Dynamic Naming and Configuration Service 的首字母简称,一个易于构建 AI Agent 应用的动态服务发现、配置管理和AI智能体管理平台。Nacos 致力于帮助您发现、配置和管理微服务及AI智能体应用。Nacos 提供了一组简单易用的特性集,帮助您快速实现动态服务发现、服务配置、服务元数据、流量管理。Nacos 帮助您更敏捷和容易地构建、交付和管理微服务平台。

Rocky Linux

Rocky Linux

Rocky Linux(中文名:洛基)是由Gregory Kurtzer于2020年12月发起的企业级Linux发行版,作为CentOS稳定版停止维护后与RHEL(Red Hat Enterprise Linux)完全兼容的开源替代方案,由社区拥有并管理,支持x86_64、aarch64等架构。其通过重新编译RHEL源代码提供长期稳定性,采用模块化包装和SELinux安全架构,默认包含GNOME桌面环境及XFS文件系统,支持十年生命周期更新。

Sublime Text

Sublime Text

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

用户登录
用户注册