环境:VMware里面安装Linux centos 8 stream,分配8G内存。

根据官方说明,standalone至少需要8G内容,8G也只能简单试一下,不能用于生产场景。

一、安装docker

1. 移除旧版本docker
sudo yum remove docker \
                  docker-client \
                  docker-client-latest \
                  docker-common \
                  docker-latest \
                  docker-latest-logrotate \
                  docker-logrotate \
                  docker-engine
2. 安装必要工具包
sudo yum install -y yum-utils \
  device-mapper-persistent-data \
  lvm2
3. 设置源(国内使用阿里云的源)
sudo yum-config-manager \
    --add-repo \
    https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
4. 移除旧依赖项
yum erase podman buildah

 

5. 执行安装docker
sudo yum install docker-ce docker-ce-cli containerd.io

6. 启动docker
systemctl enable docker
systemctl start docker

7. 检查docker是否安装成功
docker run hello-world

二、安装milvus

注意:我这里安装的是milvus standalone版本,也就是单机版

1. 下载docker compose 文件
wget https://github.com/milvus-io/milvus/releases/download/v2.3.3/milvus-standalone-docker-compose.yml -O docker-compose.yml

2. 启动milvus
sudo docker compose up -d

根据官方文档描述,standalone版本主要是三个components,分别是:etcd、minio和standalone,因此compose里面启动的就是这三个服务

 

3. 检查启动状态
sudo docker compose ps

三个服务都启动了 

4. 查看监听端口
docker port milvus-standalone 19530/tcp

 默认端口是19530,现在我们可以通过ip和端口链接到milvus了

三、连接milvus

 注意:当前的milvus是在虚拟机里面安装的,从虚拟机里面通过ip和端口是可以直接连接milvus的,但是如果想从物理机上连接milvus,需要保证虚拟机和物理机在同一个网段上,这个可以通过修改虚拟机网络配置实现。本文的虚拟机和物理机已经配置好了,在同一个网段上,因此可以通过虚拟机的ip和端口访问。

使用java连接milvus.

1. 引入dependency
        <dependency>
            <groupId>io.milvus</groupId>
            <artifactId>milvus-sdk-java</artifactId>
            <version>2.3.3</version>
        </dependency>
2. 使用代码连接milvus

我的虚拟机ip是192.168.199.128,这里根据实际情况替换

import io.milvus.client.MilvusServiceClient;
import io.milvus.grpc.DataType;
import io.milvus.param.ConnectParam;
import io.milvus.param.R;
import io.milvus.param.collection.CreateCollectionParam;
import io.milvus.param.collection.FieldType;
import io.milvus.param.collection.HasCollectionParam;

public class Main {
    static final MilvusServiceClient milvusClient = new MilvusServiceClient(
            ConnectParam.newBuilder()
                    .withHost("192.168.199.128")
                    .withPort(19530)
                    .build()
    );

    public static void main(String[] args) {

        FieldType fieldType1 = FieldType.newBuilder()
                .withName("book_id")
                .withDataType(DataType.Int64)
                .withPrimaryKey(true)
                .withAutoID(false)
                .build();
        FieldType fieldType2 = FieldType.newBuilder()
                .withName("word_count")
                .withDataType(DataType.Int64)
                .build();
        FieldType fieldType3 = FieldType.newBuilder()
                .withName("book_intro")
                .withDataType(DataType.FloatVector)
                .withDimension(2)
                .build();
        CreateCollectionParam createCollectionReq = CreateCollectionParam.newBuilder()
                .withCollectionName("book")
                .withDescription("Test book search")
                .withShardsNum(2)
                .addFieldType(fieldType1)
                .addFieldType(fieldType2)
                .addFieldType(fieldType3)
                .withEnableDynamicField(true)
                .build();
        milvusClient.createCollection(createCollectionReq);
        R<Boolean> respHasCollection = milvusClient.hasCollection(
                HasCollectionParam.newBuilder()
                        .withCollectionName("book")
                        .build()
        );
        if (respHasCollection.getData() == Boolean.TRUE) {
            System.out.println("Collection exists.");
        }

    }
}

启动main, 连接成功 

 

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐